我们知道,如果ActionForm继承了ValidatorForm,就可以在validate()方法里进行数据验证,其返回是一个ActionErrors对象。但我发现,在验证出无效的数据输入后,由于Struts在返回inputForward的时候只会保留原先的ActionForm对象在request里,所以如果我在Action里曾手动向request里setAttribute()过其他对象时,就会提示找不到那个对象。
目前的解决方法比较无奈,就是把原来放在request里的对象改为放在session里,但我担心除非用完后马上手动清除这个对象,否则会带来很多不必要的麻烦。我自己是很不喜欢使用session对象的,特别是在Action到页面的数据传递,request应该是最合适的选择。
本文转自博客园八进制的博客,原文链接:Struts在服务端验证的问题和暂时解决方法,如需转载请自行联系原博主。