我正在使用Struts 2创建一个Web应用程序。在JSP文件中,我创建了一个这样的表单:
<s:form action="actionclassname!%{methodToCall}" method="post">
...
</s:form>
在动作类中,我创建了两个方法,这些方法将根据变量methodToCall
的值进行调用。这很好用。
我的问题是action类的两个方法需要一些验证。因此,如果调用第一个方法,我使用注释来验证表单:
@Validations(....)
public String actionMethod1(){
...
}
@Validations(...)
public String actionMehod2(){
...
}
第一种方法适用于验证。我的问题在于第二种方法。看起来当我为第二种方法定义验证(也使用注释)时,我在第一种方法上定义的验证在我为第二种方法定义的验证之前再次执行。
当JSP调用此方法时,如何对要运行的第二个方法进行验证?
答案 0 :(得分:0)
在通过注释的动作配置中,您应该使用参数validateAnnotatedMethodOnly
作为验证拦截器,就像在此示例中一样
@Action(value="actionclassname", results = {
@Result(name="input", location = "/actionclassname.jsp")
},interceptorRefs = @InterceptorRef(value="defaultStack", params = {"validation.validateAnnotatedMethodOnly", "true"}))