struts2 validation

struts2 validation

在使用struts2 validation时,一个action可能会处理不少业务逻辑。
如:一个action里既有add(),又有update(),在调用add()方法返回的表单校验失败信息理应返回到add.jsp里;
在调用update()方法返回的表单校验失败信息理应返回到update.jsp里。这时候若是只在struts.xml里定义一个
input result是不行的。可是struts.xml里只能定义一个input result,应该怎么办呢?

只需给add()加一个annotation便可:'@InputConfig(resultName=add_input.jsp)'
给update()加一个annotation:'@InputConfig(resultName=update_input.jsp)'

这样就解决了只能定义一个input result的问题。

有时候,validate失败后不但愿直接返回到input页面,而是先到一个action再formward到页面。这种状况很常见,好比input页面须要一些初始化数据才能显示出来。这时就用到了@InputConfig的另一个属性:methodName,即validate失败后,会调用methodName指定的一个action method,下一步具体要显示哪一个页面,由这个method决定。
主业务action method和这个@InputConfig(methodName="show")指定的方法在同一个context里,这样input页面里便可以输出actionerror、actionmessage,也能够获得那些初始化数据了。

btw:
validation.xml文件命名方式:<ActionClassName>-<ActionAliasName>-validation.xml
如:UserAction-user_add-validation.xml
相关文章
相关标签/搜索