How to configure @SkipValidation by XML configurat

2019-01-20 06:10发布

问题:

In Struts 2,

I am trying to skip validation on method base on XML configuration. As per my application I can not use annotation. So I cannot use @SkipValidation annotation. Is there any alternative for this?

I have one action class which has five methods create, update, delete, search, and view. I want to validate only two methods create and update.

回答1:

You should configure in the struts.xml package with interceptors

<interceptors>
  <interceptor-stack name="validateWorkflowStack">
    <interceptor-ref name="basicStack"/>
<!-- ... whatever interceptors -->
    <interceptor-ref name="validation">
      <param name="excludeMethods">delete, search, view</param>
    </interceptor-ref>
    <interceptor-ref name="workflow"/>
  </interceptor-stack>
</interceptors>

then use action configuration

<action name="create" class="your.package.CreateAction" method="create">
    <result name="input">/path/to/form.jsp</result>
    <interceptor-ref name="validateWorkflowStack"/>
</action>

apply interceptor to each action that has a validation interceptor referenced explicitly on action or implicitly via <default-interceptor-ref on the package.



回答2:

You must configure validation interceptor for your action to exclude methods names that you do not want to be validated.

<action name="..."  class="...">
  <interceptor-ref name="defaultStack">
    <param name="validation.excludeMethods">input,back,cancel,browse,delete,search,view</param>
  </interceptor-ref>
  <result>...</result>
</action>