一般在使用iterceptor-stack时,我们遵从如下顺序:
<interceptor-ref name="servlet-config"/>
<interceptor-ref name="static-params"/>
<interceptor-ref name="params"/>
这样就把参数set到action中,但是为了一些比如预处理的需要,我们也常用到,prepare这个iterceptor,并在action中对应使用public void prepare(){};此时要注意,一般我们先通过上面的stack set了部分数据,比如有一个user_id,我们在页面里改了user的name,这样我们首先通过user_id获得user信息,然后需要吧name set到这个对象中,然后再dao中update,这样首先需要,<interceptor-ref name="prepare"/>,然后再来一次: <interceptor-ref name="params"/>从而把改变的字段值set入,再来update。
整体的用于update的interceptor-stack的一个参考(使用了prepare):
<interceptor-ref name="reference-resolver"/>
<interceptor-ref name="servlet-config"/>
<interceptor-ref name="static-params"/>
<interceptor-ref name="params"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="params"/>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>
当然最后有,验证及正常的workflow设定
分享到:
相关推荐
定义拦截器类**:假设我们有一个名为`ReIn`的拦截器类,该类需要实现`Interceptor`接口,并重写三个方法:`intercept()`、`init()`和`destroy()`。 ```java public class ReIn implements Interceptor { @...
Struts2 框架中的拦截器(Interceptor)是一个强大的工具,它允许开发者在Action执行前后插入自定义逻辑,如日志记录、性能监控、权限验证等。拦截器的运用大大提高了应用程序的灵活性和可扩展性,使得业务逻辑与...
- `<action>`标签定义了一个具体的Action,包括Action类的路径、拦截器的引用、返回结果的配置等。 #### 四、总结 Struts2框架通过多种配置文件来管理其行为和配置,这些文件之间的相互引用和加载顺序是非常重要...
<interceptor-stack name="myInterceptorStack"> <interceptor-ref name="MyInterceptor"/> <interceptor-ref name="defaultStack"/> </interceptor-stack> <global-results> <result name="message">/...
例如,以下配置创建了一个包含日志拦截器和权限检查拦截器的拦截器栈: ```xml <interceptor name="logging" class="com.example.LoggingInterceptor"/> <interceptor name="authCheck" class=...
在描述中提到的程序可能包含一个或多个Action类,每个类对应一个特定的用户请求。Action类通常继承自`com.opensymphony.xwork2.ActionSupport`或自定义的Action支持类,并且重写`execute()`方法,这是处理请求的核心...
除了登录检查,另一个重要的应用场景是对请求和响应进行日志记录,这对于调试和维护非常重要。 ##### 实现原理 Logger拦截器的主要作用是在Action执行前后记录日志信息,帮助开发者了解每个请求的具体执行情况,...
当一个HTTP请求到达Struts2的ServletDispatcher时,框架会根据配置文件(如struts.xml)来实例化相应的拦截器对象,并将它们组成一个拦截器链(Interceptor Chain或Interceptor Stack)。这个链中,每个拦截器按照预...
根据提供的部分内容,我们可以看到一个具体的Interceptor实现——`AccessInterceptor`,以及如何在Struts2配置文件中使用它: ```xml <packagename="newsDemo" extends="struts-default" namespace="/admin"> ...
在`StrutsInterceptor.zip`文件中,可能包含了一个示例项目,演示了如何创建、配置和使用自定义拦截器。你可以通过解压文件,查看源代码,学习并理解其工作原理。这将有助于深入理解Struts2拦截器机制,提升你的Java...
-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --> <include file="struts-default.xml"> <!-- package提供了将多个Action组织为一个模块的方式 ...
2. 拦截器配置:在struts.xml配置文件中,你可以定义多个拦截器,并通过`<interceptor>`和`<interceptor-stack>`元素来组织它们。例如,创建一个名为`myInterceptorStack`的拦截器栈,包含`logging`和`validation`两...
接下来,我们创建一个Spring的配置文件(如applicationContext.xml),在这个文件中定义Action类的bean。这里可以使用@Autowired注解来自动注入依赖,或者通过@Bean注解手动配置。 ```xml <!-- 自动注入依赖 --> ...
1. 创建一个实现了`Interceptor`接口的类,或者继承自`AbstractInterceptor`抽象类。 2. 在`intercept()`方法中实现拦截逻辑。这个方法会在每次请求到达目标动作之前被调用,你可以在这里添加日志、权限验证等操作。...
<interceptor-stack name="myStack"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="myInterceptor"></interceptor-ref> </interceptor-stack> 引入定义的拦截器 ...
此外,还可以使用`<interceptor-stack>`标签定义拦截器栈,将多个拦截器组合在一起,形成一个执行顺序,如: ```xml <interceptor name="myTime" class="com.interceptor.TimeInterceptor"></interceptor> ...
- **使用拦截器**:在Action配置中通过`<interceptor-ref>`引用拦截器栈或单独的拦截器。 ```xml <interceptor name="logging" class="com.example.LoggingInterceptor"/> <interceptor-stack name=...
Struts2作为表现层框架,提供了强大的动作调度和视图渲染能力,而Spring则是一个全面的后端解决方案,包括IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)。下面我们将...