出现的问题是:在struts2中自定义拦截器后,程序运行时validate方法没有执行,这是怎么回事呢?
与项目问题相关的文件如下:
1、struts.xml文件
2、Action类中的部分代码是如下实现的,出现的问题是添加了自定义拦截器后,validate方法就不执行了,直接执行execute方法
上述问题出现的原因是什么呢?问题怎么解决呢?
回答:问题出现的原因是自定义的拦截器配置在struts.xml配置文件中后,还要手动引入defaultStack拦截器栈。否则defaultStack拦截器栈中所有拦截器的功能都无法实现。
struts.xml的配置应当是:
<struts> <package name="example" namespace="/" extends="struts-default"> <interceptors> <interceptor name="userInterceptor" class="com.yanln.test.action.UserInterceptor"></interceptor> </interceptors> <default-interceptor-ref name="defaultStack"></default-interceptor-ref> <global-results> <result name="login">login.jsp</result> </global-results> <action name="login" class="com.yanln.test.action.LoginAction"> <interceptor-ref name="userInterceptor"></interceptor-ref> <result name="success" type="redirectAction">indexAction</result> <result name="input">index.jsp</result> </action> <action name="indexAction" class="com.yanln.test.action.IndexAction"> <result name="showSystem">success.jsp</result> </action> </package> </struts>
或者是:
<struts> <package name="example" namespace="/" extends="struts-default"> <interceptors> <interceptor name="userInterceptor" class="com.yanln.test.action.UserInterceptor"></interceptor> <interceptor-stack name="mystack"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="userInterceptor"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="mystack"></default-interceptor-ref> <global-results> <result name="login">login.jsp</result> </global-results> <action name="login" class="com.yanln.test.action.LoginAction"> <result name="success" type="redirectAction">indexAction</result> <result name="input">index.jsp</result> </action> <action name="indexAction" class="com.yanln.test.action.IndexAction"> <result name="showSystem">success.jsp</result> </action> </package> </struts>
相关推荐
基于SSH2框架Struts2拦截器的登录验证实现
Struts2验证应该包括验证器(需要xml配置)和Action中的validate()验证方法两种。后者很简单,只需要把 验证条件加进去就可以啦!
在Eclipse中配置Struts2项目(html)手把手教会你 如何在Eclipse中配置Struts2。 struts2 标签库介绍(html)对Struts2的标签做了详细的介绍让你轻松掌握Struts2的标签。 STRUTS2学习文档.pdf 对Struts2的一些配置...
这个validate验证框架中的actiionerror级别的错误的验证提示,并包含了如何在一个Action中处理多个业务逻辑,(struts1.x 中的DispatcheAction),例子比较简单,希望对大家学习struts有所帮助。
这个文件是一个eclipse工程, 导入,启动tomcat就可以访问. 简单自定义validate的例子, 简单易懂.
jquery.validate 与 struts2的整合使用
struts提供了标签来显示整个ActionErrors的错误信息。但要在struts-config.xml中设置<action ...
Struts2用validate方法进行表单验证
4.3 在Struts2中配置自定义的拦截器 53 4.3.1 扩展拦截器接口的自定义拦截器配置 54 4.3.2 继承抽象拦截器的自定义拦截器配置 56 4.3.3 继承方法拦截器的自定义拦截器配置 58 4.4 Struts2文件上传拦截器应用 61 ...
validate in struts2
在Struts2中验证真的比较容易,可以在Action中直接写validate,也可以使用validate框架进行验证,这个我觉得比Struts1.x方便了很多,但是有个问题一直困扰了我,直到现在有个小程序要用到这个方面的知识,那就是...
我最近在学习struts2框架,写了个简单的struts2的validate的验证,比较简单,适合初学者!
struts1.2 validate 源代码 实现 下载,myeclipse 下struts1.2框架下validate 表单验证,简单例子,功能已经实现
NULL 博文链接:https://fxtt1041.iteye.com/blog/1606333
主要介绍了Struts2中validate数据校验的两种方法及Struts2常用校验器,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
Struts的验证框架Validate使用[2]
第一个Struts2程序,处理一个form多个submit,struts.xml常用配置解析,使用validate方法验证数据,使用Validation框架验证数据,在Action类中获得HttpServletResponse对象的四种方法,上传任意多个文件,拦截器概述...
validate方法在validateXXX方法被调用后,依然会被调用 错误信息均保留在ArrayList中,谁先运行,谁的结果就排在前面 11.Struts2_04_validate_xml 字段校验和非字段校验----...
validate方法在validateXXX方法被调用后,依然会被调用 错误信息均保留在ArrayList中,谁先运行,谁的结果就排在前面 11.Struts2_04_validate_xml 字段校验和非字段校验----...
jquery validate方法 可以自定义方法,比如电话号码验证,判断两个字符串相等