我有两个动作类,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。
答案 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)
您可以通过将特定方法名称添加到validation和workflow拦截器的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>