做一个登录验证的页面,对集成admin的所有package进行保护。
<interceptors>
<interceptor name="adminLoginInterceptor"
class="interceptor.AdminLoginInterceptor" >
<param name="pass0">6B8E49836C0C29251833227E3B0F7FB7F8DC67CE</param>
</interceptor>
</interceptors>
<default-interceptor-ref name="adminLoginInterceptor" />
然而发现所有带有传递参数的均无法正常使用了,在Action中所有的参数无法被注入。
最后发现,struts-default中,默认的拦截器引用是defaultstack,这个拦截器包传说是经过精心设计的。。所以会把所有的参数注入!。。。
因此要更改默认拦截器,需要加上这个defaultstack
<package name="admin" extends="struts-default" >
<interceptors>
<interceptor name="adminLoginInterceptor"
class="interceptor.AdminLoginInterceptor" >
<param name="pass0">6B8E49836C0C29251833227E3B0F7FB7F8DC67CE</param>
</interceptor>
<interceptor-stack name="adminstack">
<interceptor-ref name="adminLoginInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="adminstack" />
<global-results>
<result name="login">/admin/login.jsp</result>
</global-results>
</package>
<default-interceptor-ref name="adminstack" />
<global-results>
<result name="login">/admin/login.jsp</result>
</global-results>
</package>
特别注意红色两行的顺序!先自定义再Default
===================================以上是转自别人博客===============================
延伸到自己遇到的问题
场景:我自定义了一个拦截器,是为了拦截某个固定的action,所以没有放到默认拦截器栈中,添加到某个需要被拦截的action配置文件中。但是添加拦截器之后,在action中无法注入参数,通过get方法取不到了。
配置如下:
--------struts.xml-------
<interceptors>
<interceptor name="sessionCheck" class="com.wac.common.web.interceptor.WebCookiesInterceptor" />
<interceptor name="loginCheck" class="com.wac.common.web.interceptor.LoginInterceptor" />
<interceptor name="loggingStack" class="com.wac.common.web.interceptor.LoggingInterceptor" />
<interceptor name="inch" class="financeInterfInterceptor"/>
<interceptor name="signAuthJSONInterceptor" class="com.wacai.common.web.interceptor.SignAuthJSONInterceptor"></interceptor>
<interceptor name="signAuthHtmlInterceptor" class="com.wacai.common.web.interceptor.SignAuthHttpInterceptor"></interceptor>
<interceptor-stack name="myStack">
<interceptor-ref name="sessionCheck" />
<interceptor-ref name="loginCheck" />
<interceptor-ref name="loggingStack" />
<interceptor-ref name="defaultStack" />
<interceptor-ref name="inch" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack" />
固定的需要拦截的action配置文件struts-manage.xml
<!-- 账户赠送forward -->
<action name="send_gift" class="com.wacai.payment.management.channel.action.AssetManagementAction" method="doSendGift">
<interceptor-ref name="signAuthJSONInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"/>
</action>
其中<interceptor-ref name="defaultStack"/>这段添加后,action中的参数就能获取了!
相关推荐
在这个"struts2的自定义拦截器例子"中,我们将深入探讨如何创建和使用自定义拦截器。 首先,拦截器的本质是Java的面向切面编程(AOP)思想在Struts2中的体现。它们允许开发者在动作执行前后插入自定义的逻辑,例如...
4. **在Action中应用拦截器**:最后,你需要在Action配置中指定要使用的拦截器。默认情况下,所有Action都会应用名为`defaultStack`的默认拦截器栈。如果你需要添加自定义拦截器,可以显式地引用它们。 ```xml ...
本项目“Struts2_自定义拦截器_用户权限验证”将深入探讨如何在Eclipse开发环境中,利用Struts2框架自定义拦截器进行用户权限的验证,并处理各个Action之间的跳转。 首先,我们来看自定义拦截器的创建。在Struts2中...
Struts2自定义拦截器的配置是Struts2框架中一个非常重要的功能,它允许开发者在Action执行前后插入自定义的逻辑,以实现如权限验证、日志记录、性能监控等多种需求。以下是对标题和描述中涉及的知识点的详细说明: ...
Struts2_3500_my_interceptor这个文件可能包含了一个示例项目的源代码,你可以通过学习和分析其中的代码,更深入地理解如何在Struts2中创建和使用自定义拦截器。通过实际操作,你会发现自定义拦截器是Struts2框架中...
自定义拦截器是Struts2框架中一个非常重要的特性,允许开发者扩展和定制框架的行为,以满足特定的业务需求。这篇博客文章可能是关于如何在Struts2中创建和使用自定义拦截器的教程。 在Struts2中,拦截器是基于责任...
本示例将聚焦于如何在Struts2中实现一个自定义拦截器。 首先,我们需要了解拦截器在Struts2中的作用。拦截器是AOP(面向切面编程)的一个核心概念,它允许开发者在动作执行前后插入额外的逻辑,如日志记录、权限...
虽然“表单上传”在给定的描述中与自定义拦截器直接关联不大,但在Struts2中,我们通常会结合`struts2-convention-plugin` 或者 `struts2-dojo-plugin` 来处理文件上传。`struts.multipart.parser` 属性可以配置...
拦截器是Struts2的核心特性之一,它们在Action调用之前和之后执行,扮演着类似于过滤器的角色,允许我们实现诸如日志记录、权限检查、事务管理等通用功能。在深入探讨自定义拦截器之前,我们先理解一下Struts2拦截器...
本篇将深入讲解如何在Struts2中自定义拦截器,并通过提供的源代码进行分析。 拦截器是Struts2框架的核心组件之一,它允许我们在请求到达Action之前或离开Action之后执行一些额外的操作,如日志记录、权限验证、性能...
2. **配置拦截器**:在Struts2的配置文件(通常为struts.xml)中注册自定义拦截器,并指定其在拦截器栈中的位置。例如: ```xml <struts> <package name="default" namespace="/" extends="struts-default"> ...
总结起来,自定义拦截器是Struts2中的一种强大工具,它使得我们可以插入额外的业务逻辑或增强功能,而无需修改Action的代码。通过理解和熟练使用自定义拦截器,开发者可以更好地控制和优化应用的流程,提高代码的可...
自定义拦截器是Struts2框架中扩展功能的重要手段,让我们深入探讨如何在Struts2中实现自定义拦截器。 首先,创建一个Web项目是基础步骤,这可以通过IDE如Eclipse或IntelliJ IDEA来完成。确保你的项目包含了Struts2...
自定义拦截器是Struts2中的一个重要特性,允许我们扩展框架的功能,以实现诸如日志记录、权限检查、性能监控等通用任务。在本文中,我们将深入探讨如何创建和使用自定义拦截器。 首先,了解拦截器的基本概念。在...
本篇文章将深入探讨如何实现自定义拦截器及其在Struts2中的详细配置。 首先,我们来了解自定义拦截器的基本步骤: 1. **创建拦截器类**:自定义拦截器需要继承Struts2提供的`Interceptor`接口或实现`intercept()`...
在Struts2的配置文件(通常是struts.xml)中,你需要将自定义的拦截器添加到拦截器栈中,指定其执行顺序和其他拦截器的配合。例如: ```xml <!-- 其他拦截器 --> <!-- ... --> ``` 6. **前端...
在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...