`

四、在struts2中自定义拦截器后,程序运行时validate方法为什么没起作用

阅读更多

出现的问题是:在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>

 

 

 

 

 

  • 大小: 73.8 KB
  • 大小: 36.9 KB
0
0
分享到:
评论

相关推荐

    struts2拦截器实现拦截不文明字迹

    验证(validate)是Struts2中的另一个重要概念,通常用于数据校验。在Action类中,我们可以定义`validate`方法来检查用户输入的有效性。但要注意,拦截器和验证是两个不同的机制,拦截器可以在更广泛的层面上处理...

    struts2中拦截器的使用

    Struts2是一个强大的Java Web框架,它通过提供一系列的拦截器(Interceptors)来实现灵活的控制...学习如何创建自定义拦截器,以及如何结合不同的拦截器来实现复杂的业务逻辑,对于提升Struts2框架的使用技能至关重要。

    在struts1中使用拦截器——saif-0.1.jar

    本文将深入探讨在Struts1中如何使用拦截器,并以saif-0.1.jar为例,解释其在实际项目中的应用。 首先,理解Struts1拦截器的概念。拦截器是基于Java的动态代理机制实现的,它们按照预定义的顺序对请求进行拦截,执行...

    基于ssh拦截器框架Struts2拦截器的登录验证实现

    SSH2 框架中的 Struts2 拦截器功能允许开发者在特定操作执行前或执行后进行自定义处理,例如登录验证、权限检查等。在本文中,我们将探讨如何使用 Struts2 的拦截器来实现登录验证功能。 首先,我们需要了解 Struts...

    struts2的自定义校验器代码

    自定义校验器在Struts2中扮演着至关重要的角色,它允许开发者根据业务需求定制特定的验证规则,以确保数据输入的正确性和一致性。本文将深入探讨如何在Struts2中创建和使用自定义校验器。 ### 一、Struts2验证概述 ...

    jquery.validate 与 struts2的整合使用

    在Web开发中,jQuery Validate和Struts2是两个非常重要的工具。jQuery Validate是一个轻量级的JavaScript库,用于对HTML表单进行验证,确保用户输入的数据符合预设的规则。而Struts2是一个基于MVC设计模式的Java Web...

    Struts2内置拦截器简介

    - **用途**:当Action中的`validate()`方法返回`false`时,可以通过此拦截器控制Action的流转,如重定向到输入页面等。 27. **Json Validation (JSON验证)** - **说明**:如果验证失败,此拦截器会将`...

    struts-default中拦截器介绍.pdf

    Struts 2 框架中的拦截器是其核心组件之一,主要负责在Action执行前后进行额外的操作,如参数绑定、验证、权限控制等。...在实际应用中,可以根据项目需求自定义拦截器,或调整默认拦截器的顺序,以实现更精细的控制。

    struts2讲义 struts2讲义struts2讲义struts2讲义struts2讲义

    - 实现`Interceptor`接口创建自定义拦截器,需要实现`intercept()`方法。 - 通过继承`AbstractInterceptor`类来简化拦截器的实现。 - 使用`InterceptorStack`可以组合多个拦截器,提供更加灵活的控制流。 - **...

    struts2验证+拦截器+国际化+下载excle文档+ssh集成.rar

    在Struts2中,可以通过资源文件(通常为.properties格式)存储不同语言的文本,然后在模板或者Action中引用这些资源,实现界面语言的切换。 "下载Excel文档"功能涉及文件流处理和HTTP响应头设置。Struts2提供Action...

    struts2如何配置与自定义类型转换

    本篇文章将详细介绍如何在Struts2中进行配置与自定义类型转换。 首先,Struts2的配置主要涉及到`web.xml`和`struts.xml`两个文件。在`web.xml`中,你需要添加一个Struts2的Filter,这个Filter负责拦截所有的HTTP...

    Struts的验证框架Validate使用[2]

    Struts的验证框架Validate是Java Web开发中一个关键的组件,尤其在构建MVC(Model-View-Controller)架构的应用程序时。这个框架主要用于确保用户输入的数据满足预定义的业务规则,从而提升应用的安全性和数据的准确...

    struts2开发文档

    - **配置**:在`struts.xml`中定义拦截器和拦截器栈,可以自定义拦截器并组合使用。 4. **拦截器的使用** - **默认拦截器**:Struts2提供了一系列内置拦截器,如`params`、`validation`等,可以在`struts-default...

    struts2学习笔记

    通过在struts.xml中定义拦截器栈,可以自定义拦截器的执行顺序。 **五.Struts2的文件上传与下载** 1. **不使用Struts2进行上传**:可以使用Servlet API直接处理文件上传,但Struts2提供了更简便的API。 2. **使用...

    Struts2+jquery.validate框架实现用户名是否存在

    另外,还可以使用Struts2的流结果类型(`stream`),将布尔值转换为字符串并创建`ByteArrayInputStream`,然后在`struts.xml`中配置相应的流结果。 ### 实践注意事项 - **前后端分离验证** 虽然前端验证可以提供...

    一个简单的struts2的入门程序用来实现登陆界面

    你可以利用`ActionSupport`中的验证方法,如`validate()`,或者自定义拦截器进行更复杂的验证逻辑。 7. **模型驱动**:在Struts2中,你可以使用模型驱动的方式,将表单字段的值直接绑定到Action类的属性上,这样在`...

    java拦截器

    3. **Struts2示例**:在Struts2框架中,当请求到达ServletDispatcher时,框架会根据配置文件查找并实例化对应的拦截器对象,然后将这些对象串联成一个列表,最后依次调用列表中的拦截器。 #### 三、拦截器的配置 ...

    Struts2_validate_6_8.rar_Java 8

    在Struts2中,数据验证是一个关键功能,它确保了用户输入的数据符合应用的要求,从而提高了应用程序的安全性和用户体验。在"Struts2_validate_6_8.rar"这个压缩包中,我们很显然会找到与Struts2数据验证相关的资源,...

    Struts1和Struts2区别

    Struts1和Struts2是两个非常著名的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(Model-View-Controller)架构的应用程序。虽然它们在目标上相似,但在设计模式、功能特性和使用体验上存在显著差异。...

Global site tag (gtag.js) - Google Analytics