1

我正在使用 Struts 2 创建一个 Web 应用程序。在一个 JSP 文件中,我创建了一个像这样的表单:

<s:form action="actionclassname!%{methodToCall}" method="post">
...
</s:form> 

在动作类中,我创建了两个方法,它们将根据变量的值被调用methodToCall。效果很好。我的问题是动作类的两种方法需要一些验证。因此,如果调用第一个方法,我使用注释来验证表单:

@Validations(....) 
public String actionMethod1(){
    ...
}

@Validations(...) 
public String actionMehod2(){
    ...
}

第一种方法适用于验证。我的问题是第二种方法。似乎当我为第二种方法定义验证(也使用注释)时,我在第一种方法上定义的验证在我为第二种方法定义的验证之前再次执行。

当 JSP 调用此方法时,如何对要运行的第二种方法进行验证?

4

1 回答 1

0

在通过注释的操作配置中,您应该使用validateAnnotatedMethodOnly验证拦截器的参数,就像在这个例子中一样

@Action(value="actionclassname", results = {
  @Result(name="input", location = "/actionclassname.jsp")
},interceptorRefs = @InterceptorRef(value="defaultStack", params = {"validation.validateAnnotatedMethodOnly", "true"}))
于 2013-08-02T13:38:57.190 回答