Struts 2validationxml中的特定操作

我想仅在动作类中validation特定方法。 行动方法是这样的。

public String add() throws Exception { // aflag = true; org.setAoName(aoName); orgBo.addOrg(org); orglist = orgBo.searchOrg(organisationSearch); setAoName(""); setAflag("viewaddorgs"); return "add"; } 

问题是目前我在动作类中有很多动作方法。 当我调用这些方法时,它会validation此方法。 请帮我用xmlvalidation这个方法。

这是我的OraganisationAction-validation.xml

        The name is required!     The name is required!     

这是我的jsp:

     

struts xml

      secondTemplate orgTemplate   orgAddTemplate orgAddTemplate orgAddTemplate orgAddTemplate orgTemplate orgTemplate orgEditTemplate orgEditTemplate orgEditTemplate orgTemplate orgViewTemplate  

它适用于注释,但xml尚未成功。

要从validation中排除某些方法,您可以覆盖validation拦截器的参数。 例如,在拦截器堆栈中,您可以编写

  input,back,cancel,browse,yourmethod  

在动作配置中,您可以使用上面的代码和

  input,back,cancel,browse,yourmethod  

注意yourmethod的方法是一个方法名称。

您可以通过此文件中的操作名称的后缀仅为一个操作指定validation.xml 。 例如, AcrionClass-add-validation.xml仅适用于操作配置中的操作名称add 。 注意这里add是一个动作名称,而不是方法名称。

通常,name属性与方法名称匹配,但它们也可能不同。

我遇到了类似的问题但是这些是我纠正的几件事:

1)yourAction-yourAlias-validation.xml中的DOCTYPE应该是

   

2)创建一个自定义拦截器来排除不需要validation的方法。下面是我的候选人注册的样本,我必须跳过区域方法的validation,该方法获取州的区域。

     input,district       /jsps/student/studentregistration.jsp /jsps/student/registrationfailure.jsp /jsps/login.jsp /jsps/includes/dropdown_districts_regoffice.jsp   

使用操作别名:将不同的Action方法映射到struts.xml中的不同操作别名,而不是单个yourAction-validation.xml文件,为要为其执行的validation器添加yourAction-yourAlias-validation.xml方法而已。

在这里阅读更多 。

编辑

现在没有任何validation。

    You cannot leave the aoName address field empty.    

name是OraganisationAction-add-validation.xml并将其与动作类包放在一起。 有没有什么可以在struts.xml中启用validation?

如果您具有正确配置(例如默认)拦截器堆栈,则已启用validation。 如果您使用的是名为OraganisationAction-add-validation.xml的文件,则表示:

  • 你的行动CLASS必须命名为OraganisationAction.java ;
  • 您在struts.xml中的操作映射必须如下:

      yourResult.jsp  

查找拼写错误,检查拦截器堆栈,它会自动运行。