Struts2验证绕过/阻止,表分页

时间:2010-08-05 16:33:14

标签: struts2

我有两个动作类,UserAction(方法:登录,注销)& EmployeeAction(方法:添加,更新,查看)都有一个验证方法。默认情况下,它会针对每个方法调用。是否有一种方法可以在say logout上绕过对validate方法的调用,因为这样做会在字段上抛出nullpointer异常。对于view方法也是如此,不需要任何验证。

struts.xml中

<action name="*Employee" method="{1}" class="package.EmployeeAction">
    <result name="not_found">/WEB-INF/errors/not_found.jsp</result>
    <result name="success">/WEB-INF/{1}Employee.jsp</result>
</action>

2)如何为3个jsp页面实现客户端验证,add.jsp,view.jsp&amp; update.jsp都调用单个动作类的方法?
3)有没有关于如何在struts2中创建表分页的教程?我无法找到一个。文档? -Nishant。

2 个答案:

答案 0 :(得分:2)

how can I implement client side validation for 3 jsp pages, add.jsp, view.jsp & update.jsp which all call a method of a single action class?  

您需要做的就是在JSP中的表单标记中设置validate = true。您可以参考此link

are there any tutorials on how to create table pagination in struts2?

您可以尝试display tags。这个标签库对分页有很好的支持。

希望这有帮助

答案 1 :(得分:2)

您可以通过将特定方法名称添加到validationworkflow拦截器的excludeMethods参数来绕过验证。如果你查看defaultStack定义,你会发现它已经排除了一些常见的方法名称。只需将注销添加到列表中:

        <interceptor-stack name="defaultStack">
            <interceptor-ref name="exception"/>
            <interceptor-ref name="alias"/>
            <interceptor-ref name="servletConfig"/>
            <interceptor-ref name="i18n"/>
            <interceptor-ref name="prepare"/>
            <interceptor-ref name="chain"/>
            <interceptor-ref name="debugging"/>
            <interceptor-ref name="scopedModelDriven"/>
            <interceptor-ref name="modelDriven"/>
            <interceptor-ref name="fileUpload"/>
            <interceptor-ref name="checkbox"/>
            <interceptor-ref name="multiselect"/>
            <interceptor-ref name="staticParams"/>
            <interceptor-ref name="actionMappingParams"/>
            <interceptor-ref name="params">
              <param name="excludeParams">dojo\..*,^struts\..*</param>
            </interceptor-ref>
            <interceptor-ref name="conversionError"/>
            <interceptor-ref name="validation">
                <param name="excludeMethods">input,back,cancel,browse,logout</param>
            </interceptor-ref>
            <interceptor-ref name="workflow">
                <param name="excludeMethods">input,back,cancel,browse,logout</param>
            </interceptor-ref>
        </interceptor-stack>