2013-01-18 61 views
1

在Struts 2中,如何在Struts 2中通过XML配置配置@SkipValidation

我想跳过基于XML配置的方法的验证。 根据我的申请我不能使用注释。所以我不能使用@SkipValidation注释。有没有其他办法呢?

我有有五个方法createupdatedeletesearch,并且view一个Action类。我只想验证两种方法createupdate

回答

2

你应该在struts.xml中包拦截

<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> 

然后使用操作配置

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

适用拦截到有行动明确提到验证拦截器的每个动作配置或者通过包装上的<default-interceptor-ref隐式地进行。

+0

为什么你使用'basicStack'? –

+0

它不包含验证拦截器。 –

+1

它不包含很多拦截器。 –

2

您必须配置validation拦截器才能排除您不希望验证的方法名称。

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