`
Luob.
  • 浏览: 1592718 次
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2 拦截器注解(二十七)

阅读更多
1.拦截器注解
Struts2在com.opensymphony,xwork2.interceptor,annotations 包中定义了3个拦截器注解类型。从而可以直接通过注解的方式,来指定action执行之前和之后需要调用的方法。
Struts2提供的3个拦截器注解类型如下:
Before:
标注一个Action方法,该方法在执行Action处理(例如:execute())执行之前调用。如果标注的方法有返回值,并且不为 null 那么这个返回值将作为Action的结果代码。

After:
标注一个Action方法,该方法将Action的处理方法执行之后被调用,如果标注的方法有返回值,那么个返回值将被忽略。

BeforeResult:
标注一个Action方法,该方法将在Action的处理方法执行之后,在result执行之前被调用。如果标注的方法有返回值,那么这个返回值将被忽略。



action.java

package com.sh.action;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.interceptor.annotations.After;
import com.opensymphony.xwork2.interceptor.annotations.Before;
import com.opensymphony.xwork2.interceptor.annotations.BeforeResult;

public class AnnotationAction extends ActionSupport {
	@Before
	public String before(){
		System.out.println("执行before方法!");
		//如果before 有返回值将作为action的返回结果
		return "error";
	}
	@After
	public void after(){
		System.out.println("执行after方法!");
	}
	@BeforeResult
	public void beforeResult(){
		System.out.println("执行beforeresult方法!");
	}
	
	public String execute(){
		System.out.println("执行execute方法");
		return SUCCESS;
	}
}


struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts> 
	<!-- 如果 注解的action配置改变时候不需要重新启动tomcate -->
	<constant name="struts.devMode" value="false"/>  
    <constant name="struts.convention.classes.reload" value="true" /> 
	
	<package name="default" extends="struts-default">
		<!-- 使用拦截器注解必须配置 AnnotationWorkflowInterceptor这个拦截器 -->
		<interceptors>
			<interceptor name="annotationInterceptor" 
			class="com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor"/>
			<interceptor-stack name="annotationStack">
				<interceptor-ref name="defaultStack"/>
				<interceptor-ref name="annotationInterceptor"/>
			</interceptor-stack>
		</interceptors>
		
		<!-- 然后在使用到了拦截器注解的action中使用上面的 拦截器  -->
		<action name="annotationAction" class="com.sh.action.AnnotationAction">
			<result>/index.jsp</result>
			<result name="error">/error.jsp</result>
			<interceptor-ref name="annotationStack"/>
		</action>
		
	</package>
    
</struts>


error.jsp
 <body>
    before方法 出现异常!
 </body>


index.jsp 就不说了
1
3
分享到:
评论

相关推荐

    Struts2拦截器及其用法详细说明

    Struts2的拦截器可以通过XML或注解两种方式进行配置: - XML配置:在`struts.xml`文件中,使用`&lt;interceptor&gt;`元素定义拦截器,`&lt;interceptor-stack&gt;`元素组合多个拦截器,`&lt;package&gt;`元素下的`interceptors`属性...

    struts2注解与拦截器demo

    该例子为struts2注解与拦截器demo,利用myEclipse8.5开发,导入刚才后,自动加载所需struts2的jar包,可以直接运行,是初学struts2注解、拦截器很好的例子,保证10分钟学会2种技术,愿意分享给大家。

    struts2 拦截器实例

    3. **配置拦截器**:拦截器可以通过Struts2配置文件或注解进行配置,指定在哪些Action上使用哪些拦截器。 ### 二、单个Action配置拦截器实例 1. **创建拦截器**:首先,我们需要创建一个实现了`Interceptor`接口的...

    使用struts拦截器+注解实现日志审计功能

    本文将详细介绍如何利用Struts拦截器和注解来实现日志审计功能。 首先,我们需要了解Struts拦截器的工作原理。拦截器是基于Java的动态代理模式实现的,它们在Action调用前后执行,形成一个拦截器链。每个拦截器都...

    Struts2拦截器源码

    Struts2中的拦截器可以通过XML配置文件或注解进行声明。例如,`struts-default.xml`中包含了默认的拦截器栈,如`params`拦截器用于处理请求参数,`exception`拦截器用于处理异常,`validation`拦截器进行数据校验。 ...

    Struts2学习案例(拦截器)

    在本学习案例中,重点在于Struts2的拦截器(Interceptor)功能,这是Struts2的核心特性之一,它允许开发者在Action执行前后进行自定义处理,实现了灵活的业务逻辑控制和增强的功能。 首先,我们来理解一下什么是...

    Struts2 拦截器 和 Java 中的动态代理

    在Struts2中,拦截器(Interceptor)是一个关键概念,它扮演着处理请求、添加额外功能和增强应用行为的角色。本文将深入探讨Struts2拦截器的原理以及它与Java中的动态代理之间的联系。 首先,让我们了解Struts2拦截...

    利用struts2拦截器做的简单登录

    本文将深入探讨如何利用Struts2的拦截器实现简单的登录功能。拦截器是Struts2框架的核心组件之一,它允许我们在动作执行前后插入自定义逻辑,比如权限验证、日志记录等。 首先,我们来理解一下Struts2拦截器的工作...

    struts2 以注解的形式实现拦截器

    博客文章“struts2 以注解的形式实现拦截器”可能还详细介绍了如何在Struts2的配置中启用注解支持,以及如何通过注解配置拦截器的参数,以传递额外的信息给拦截器。 总之,使用注解在Struts2中实现拦截器提供了更...

    struts2拦截器和验证框架(适合初学者-经藏版)

    ### Struts2 拦截器与验证框架详解 #### 一、Struts2概述 Struts2是一个基于Java的企业级Web应用开发框架,它继承了Struts1的优点,并在此基础上进行了很多改进,使得开发更加灵活高效。Struts2的核心是拦截器...

    struts2注解配置Action及拦截器几种不同方式写法对应的路径指向.docx

    "Struts2 注解配置 Action 及拦截器几种不同方式写法对应的路径指向" Struts2 注解配置 Action 及拦截器是 Struts2 框架中的核心组件之一,负责处理用户请求并返回响应结果。下面,我们将通过详细的解释和示例代码...

    一个Struts2的核心拦截器例子

    核心拦截器是Struts2框架的重要组成部分,它们允许开发者在动作执行前后插入自定义逻辑,以实现如日志、权限验证、数据校验等常见功能。下面将详细讲解Struts2的核心拦截器以及如何在项目中使用它们。 1. **Struts2...

    Struts2.3.4.1 注解实例(二十)

    4. **拦截器注解**: Struts2支持自定义拦截器,通过 `@InterceptorRef` 可以在方法或类级别引用拦截器链。这允许你方便地控制拦截器的顺序和使用。 5. **类型转换注解**: `@TypeConversion` 或 `@Converter` ...

    Struts2+spring注解配置

    例如,`@ParentPackage("struts-default")` 将使用默认的 Struts2 拦截器配置。 3. **Namespace 注解** - `@Namespace` 用于定义 Action 所属的命名空间,这有助于组织和隔离不同的功能模块。例如,`@Namespace("/...

    struts2中拦截器的使用

    包中定义了3个主要的拦截器注解类型:`@Before`、`@After`和`@Around`. 这些注解允许你在Action类或者方法上直接定义拦截器,无需在配置文件中声明。 1. `@Before`注解:此注解标记的方法会在Action执行之前被调用...

    Struts2 拦截器 手动验证 或 自动验证 后台登录验证 源码

    2. 注册拦截器:在Struts2的配置文件(如struts.xml)中,将这个拦截器添加到默认栈或者自定义拦截器栈中。 3. 检查登录状态:在`intercept()`方法中,可以通过Session或者其他方式检查用户是否已登录,未登录则返回...

    struts2类型转换 拦截器 校验的例子

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括类型转换、拦截器和校验机制。本文将深入探讨这些关键知识点,并通过实际例子来帮助你理解它们的工作原理和应用。 首先,我们来看看**类型转换...

    Struts2 拦截器详细配置过程

    Struts2 拦截器是框架中一个重要的组件,用于增强Action的处理能力,提供预处理和后处理的功能。在Struts2中,拦截器是基于...在实际项目中,通常会结合Struts2的注解和配置文件来定义拦截器,以满足不同的业务需求。

    struts2拦截器

    Struts2 拦截器是其核心特性之一,它基于Apache的拦截器模式实现,为应用程序提供了灵活的控制流程,使得在Action调用前后可以插入自定义的处理逻辑。Struts2 框架通过拦截器实现了MVC模式中的业务逻辑与表示层的...

Global site tag (gtag.js) - Google Analytics