Struts 配置拦截器导致 验证的某某Action

参考原文

在配置了struts的拦截器后,之前的验证文件Action-validation.xml文件就不起作用了。原来是设置拦截器的问题。

Action-validation.xml文件如下:(RegisterAction-test-validation.xml )

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" ""><validators><validator type="requiredstring"><param name="fieldName">username</param><param name="fieldName">password</param><message>${fileName} not field should not be blank</message></validator><validator type="stringlength"><param name="fieldName">username</param><param name="fieldName">password</param><param name="min">6</param><param name="max">10</param><message>${fieldName} should ${min} to ${max}</message></validator></validators>

初始struts.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"""><struts><constant name="struts.custom.il8n.resources" value="message"></constant><package name="struts2" extends="struts-default"><interceptors><interceptor name="MyInterceptor" class="com.test.interceptor.MyInterceptor"><param name="myParams">i am params</param></interceptor></interceptors><action name="PointConverter" class="com.test.action.PointAction"><result name="success">/output.jsp</result><result name="input">/input.jsp</result></action><action name="register" class="com.test.action.RegisterAction"method="test"><result name="success">/success.jsp</result><result name="input">/register2.jsp</result><interceptor-ref name="MyInterceptor"></interceptor-ref></action></package></struts>

这个时候以前书写的验证文件就不起作用。原因是 interceptor 只能有一个默认的interceptor 就是defaultStack 在struts-default.xml 中修改struts.xml文件 我这里用一个interceptor-stack 拦截器栈 跟问题本身没有关系,如下

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ""><struts> <constant name="struts.custom.il8n.resources" value="message"></constant> <package name="struts2" extends="struts-default"> <interceptors> <interceptor name="MyInterceptor" class="com.test.interceptor.MyInterceptor"><param name="myParams">i am params</param> </interceptor> <interceptor-stack name="myInterceptorStack"><interceptor-ref name="MyInterceptor"></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <action name="PointConverter" class="com.test.action.PointAction"> <result name="success">/output.jsp</result> <result name="input">/input.jsp</result> </action> <action name="register" class="com.test.action.RegisterAction" method="test"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> <interceptor-ref name="myInterceptorStack"></interceptor-ref> </action> </package></struts>

这样之前配置的校验就可以正常执行校验了。

,在前进的路上,主动搬开别人脚下的绊脚石,有时往往也是为自己铺路。

Struts 配置拦截器导致 验证的某某Action

相关文章:

你感兴趣的文章:

标签云: