struts-config.xml中的对action的input属性的配置的目的就是用于validate失败后返回。
可以查看org.apache.struts.action.RequestProcessor中的源码,在processValidate()方法中有这样一段:
mapping是一个ActionMapping对象,在ActionServlet对struts-config.xml进行解析时植入的。mapping.getInput()就返回该mapping对象对应的input属性。
*(************关于input属性的另外一个问题*************************************
当前页是动态页面,加了参数才生成的,当前页的表单认证失败后要回到当前页但是INPUT的路径是写在 struts-config.xml里的 怎么给后面加动态的参数?
>> .do后面可以加参数,顺便把struts配置里面对应的redirect设置为"true",就可用xx.do?sdasd=sdsad之类。)
<< 参数是变量。。。在form里的validate方法只会到input的路径上啊
>>INPUT是form验证不通过返回的地址 如果这个地址里面有参数 怎么办? 是动态的
<< 我这两天考虑了一下 不知道这样可行否
首先当前页面是根据那个参数动态生成 把需要显示的内容放到SESSION里
然后 input就写当前页面的URL 把后面标志当前内容的参数去掉 这样表单验证失败回到当前页面
由于显示的内容在session里 所有不需要那个参数也就能正常的显示了
这里还要在Action里做判断 如果有参数 那么针对这个参数从生成DTO 放到session
里,如果参数为NULL,直接 forward回这个页面,这个request肯定是验证失败INPUT过来的
这时SESSION已经有存放显示内容的 DTO,故正常显示
不知道这样可行否 我把我的改改 手里的项目 由于都是这种带参数的 所以表单验证都放到Action里了.
>> 不过你这种做法是不是的选择个适当时机把seesion里的值去掉,,要不session太大了
<< 我感觉你最好不要用SESSION这东西来存这个,这是一种浪费!你最好在用完之后清除掉!这样最保险!
我也遇到这样的问题,应该有更好的解决办法.