在做项目的过程中,用到了Struts2的validation.我在对一个业务进行save操作的过程中,用到了validation校验。
在校验出问题后,根据我的xml文件中的配置的saveXXXAction的<result name="input">/reviewXXX.action</result>,
通过另外一个reviewXXX.action查找到要显示的信息后,再重新返回到编辑页面。在reviewXXX.action的配置中同样写
了<result name="input">/saveXXX.jsp</result>.但是在运行的过程中,如果有验证问题,却没有进入到reviewXXX.action中,
无法查询出要显示的信息,造成错误:
tag 'select', field '', name '': The requested list key '' could not be resolved
as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
后来在reviewXXX.action中添加了一个<interceptor-ref name="basicStack"/>,覆盖掉默认的defaultStack.就不在对
validation进行拦截了,正确进入reviewXXX.action.
困扰了我2天多,看来我的Struts2还是太烂了,发出来共勉!
在校验出问题后,根据我的xml文件中的配置的saveXXXAction的<result name="input">/reviewXXX.action</result>,
通过另外一个reviewXXX.action查找到要显示的信息后,再重新返回到编辑页面。在reviewXXX.action的配置中同样写
了<result name="input">/saveXXX.jsp</result>.但是在运行的过程中,如果有验证问题,却没有进入到reviewXXX.action中,
无法查询出要显示的信息,造成错误:
tag 'select', field '', name '': The requested list key '' could not be resolved
as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
后来在reviewXXX.action中添加了一个<interceptor-ref name="basicStack"/>,覆盖掉默认的defaultStack.就不在对
validation进行拦截了,正确进入reviewXXX.action.
困扰了我2天多,看来我的Struts2还是太烂了,发出来共勉!
本文记录了解决Struts2中使用validation进行数据校验时遇到的问题。当校验失败时,原本期望跳转到特定Action进行信息查询并返回编辑页面,但实际运行时却因拦截器设置不当导致无法正常获取数据。文中详细介绍了如何通过调整拦截器配置来解决这一问题。
278





