`

Struts2 Annotation 实践

阅读更多

1.登陆Action

 

/*
 * action也需要在这个路径(/anno)下
 * 如:@Action(value="/anno/login"
 * */
//可以这样(在WEB-INF下):@ResultPath("/WEB-INF/jsps")
@ParentPackage("annoInterceptorPackage")
@ResultPath("/anno")
@Results({
	@Result(name="error",location="anno_login_error.jsp",type="redirect"),
	@Result(name="success",location="anno_login_success.jsp",type="redirect")
})
@ExceptionMappings({
	@ExceptionMapping(result="error",exception="java.lang.Exception")
})
@InterceptorRefs({
	@InterceptorRef("namePrefixInterceptor"),
	@InterceptorRef("defaultStack")
})
public class LoginAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	private User user;
	private String injectMsg;

	@Actions({
		@Action(value="/anno/login",params={"injectMsg","hi,mtea"}
		/*
		//当配置了Action级的结果视图,则可以不需要方法级别的结果视图
		,results={
					@Result(name="error",location="/anno/anno_login_error.jsp",type="redirect"),
					@Result(name="success",location="/anno/anno_login_success.jsp",type="redirect")
				}
				
				
		 */
		/*
		//当配置了Action级的拦截器,则可以不需要方法级别的拦截器
		
		,interceptorRefs={
				@InterceptorRef("namePrefixInterceptor"),
				@InterceptorRef("defaultStack")
			}
		*/
		)
	})
	public String login() throws Exception {
		System.out.println("getInjextMsg():"+getInjectMsg());
		if (user != null) {
			if (user.getUsername().equals("mtea") && user.getPassword().equals("123")) {
				System.out.println("login()()-SUCCESS");
				return SUCCESS;
			} else {
				System.out.println("login()()-ERROR");
				throw new Exception("测试异常");
				//return ERROR;
			}
		} else {
			return ERROR;
		}

 

 

2.用户名前缀拦截器

 

/**
 * 登陆名前缀拦截
 */
public class NamePrefixInterceptor extends AbstractInterceptor {
	private static final long serialVersionUID = 1L;
	
	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		HttpServletRequest request = ServletActionContext.getRequest(); 
		String username=request.getParameter("user.username");
		System.out.println("NamePrefixInterceptor-intercept()-username:"+username);
		if(username.startsWith("m")){
			return Action.ERROR;
		}else{
			return invocation.invoke();
		}
	}
}

 

3.配置拦截器

	<package name="annoInterceptorPackage" namespace="/anno" extends="struts-default">
		<interceptors>
			<interceptor name="namePrefixInterceptor" class="com.mtea.erp.interceptor.NamePrefixInterceptor"/>
		</interceptors>
	</package>

 

 

4.简单截图


 

注意:

annoInterceptorPackage 这个名字需要和 @ParentPackage("annoInterceptorPackage") 一样,否则的话,tomcat出错!


<constant name="struts.devMode" value="true" />

<constant name="struts.convention.classes.reload" value="true" />


同时配置的话,估计也会出错!

 

  • 大小: 4.6 KB
分享到:
评论

相关推荐

    Struts2之Annotation注解配置使用案例struts013

    在Struts2中,Annotation注解的引入为开发者提供了更加灵活和便捷的配置方式,使得无需在XML配置文件中进行繁琐的设置,可以直接在类或方法上通过注解来进行配置。本文将深入探讨Struts2中的Annotation配置,以及...

    struts2 hibernate3 spring2.5 annotation 整合

    文件Spring_3300_Registration_11可能是一个示例项目,包含了上述整合的实例,包括Action、Service、DAO、配置文件等,开发者可以通过学习和运行这个项目来理解和实践Struts2、Hibernate3、Spring2.5的整合以及注解...

    struts annotation Hello World

    在进行Struts 2与注解的实践时,开发者需要注意以下几点: 1. 注解的使用可以减少XML配置,但并不意味着完全取代。有些情况下,XML配置可能更为灵活。 2. 需要理解每个注解的作用和用法,避免滥用导致的混乱。 3. ...

    Struts2.3.15 基于Annotation的小DEMO

    在这个基于Annotation的小DEMO中,我们将探讨如何使用Struts2.3.15的注解特性来创建一个简单的Web应用。 首先,Struts2的注解简化了Action类的配置。在传统的Struts2配置中,我们通常会在struts.xml文件中定义每个...

    struts2+spring2+hibernate3 Annotation的整合

    本文将详细解析"Struts2+Spring2+Hibernate3 Annotation的整合"这一主题,主要涵盖以下几个方面: 1. **Struts2框架**:Struts2是一个基于MVC设计模式的Web应用框架,用于简化Java Web应用程序的开发。它的主要功能...

    SSH2-Annotation.rar_annotation ssh2_ssh2_ssh2 annotation

    4. **SSH2 Annotation的整合**:在SSH2-Annotation项目中,Spring、Hibernate和Struts2通过注解进行了深度融合。Spring通过扫描注解找到并初始化Bean,Hibernate通过注解解析实体类与数据库表的映射,Struts2则通过...

    struts2权威指南光盘源码-第18章源码

    Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)应用。第18章的源码主要涵盖了Struts2与Struts1的集成以及Struts2的验证机制。以下是这些源码中涉及的关键知识点: ...

    struts零配置HelloWorld-Annotation

    在“struts零配置HelloWorld-Annotation”这个项目中,我们将重点探讨如何利用注解来实现Struts2框架的配置,这对于初学者来说是一个很好的起点。 在传统的Struts2配置中,我们需要在`struts.xml`文件中手动定义每...

    Struts2零配置

    这种设计理念源于Ruby on Rails框架的成功实践,并被广泛应用于包括Struts2在内的多个现代Web框架中。 #### 二、Struts2中的零配置实现:Convention插件 **Struts2 Convention插件**是实现零配置的关键组件。它...

    struts2+hibernate+annotation+spring整合的jar包

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们的整合应用通常被称为SSH(Struts2-...在学习和实践中,应注重理解各个框架的核心原理,同时关注安全问题,如Struts2的XSS、CSRF等漏洞,确保应用的安全性。

    struts2_1_8spring3hibernate3_5_1_annotation_XML都有

    Struts2、Spring3和Hibernate3是Java Web开发中的三个核心框架,它们分别负责MVC模式中的表现层、业务层和服务层。SSH(Struts2、Spring、Hibernate)的集成可以构建出强大的企业级应用。在给定的压缩包文件中,包含...

    Struts2+Spring2.5+Hibernate3+annotation 整合程序

    在"Struts2+Spring2.5+Hibernate3+annotation"的整合中,注解(Annotation)的使用极大地简化了配置工作。例如,`@Controller`、`@Service`、`@Repository` 和 `@Component` 注解用于标记Spring的Bean,`@...

    Struts2+Spring+Mybaits3框架整合实例

    在这个实例中,"SSI2_Annotation"可能表示使用注解方式进行配置。在Struts2中,Action类可以使用注解`@Action`来定义行为;在Spring中,可以使用`@Component`、`@Service`、`@Repository`和`@Controller`等注解来...

    百度文库 牛牧struts2.x深入浅出

    牛牧的"Struts2.x深入浅出"教程是针对这个框架的深度解析,主要帮助开发者理解并熟练掌握Struts2的核心概念和实践技巧。 在第二部分中,我们首先会接触到`struts2_GetFromData`,这部分主要讲解了如何从HTTP请求中...

    Struts2 Spring2.5 Hiberante3.3.2 +ExtJS(Struts2-json)做的CRUD

    Struts2、Spring2.5、Hibernate3.3.2以及ExtJS是Java Web开发中的四大核心技术,它们共同构建了一个强大的MVC(Model-View-Controller)架构,用于实现高效、灵活的企业级应用。这个DEMO是将这些技术集成在一起,以...

    Struts 2 in Action

    4. **表单与验证**:讨论Struts 2的表单元素、数据绑定以及基于Annotation的验证机制,包括字段级别的验证和全局验证。 5. **OGNL**:介绍OGNL的基本语法和用法,如何在视图中动态访问和操作对象属性。 6. **国际...

    spring2.5 ibatis2.3 struts2.1 dwr3 annotation集成配置

    本主题聚焦于一个经典的Java企业级应用架构:Spring 2.5、iBatis 2.3、Struts 2.1 和 DWR 3 的整合,以及使用注解(Annotation)进行配置。这四个组件的结合可以构建出一个功能强大、可扩展性好、易于维护的Web应用...

    有关struts2上传 有关struts2上传

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在Struts2中,文件上传功能是常见的需求,它允许用户通过网页将本地文件发送到服务器进行处理或存储。本篇文章将深入探讨...

    Struts2+Spring2.5+Hibernate3全注解实例详解

    超级详细的SSH2项目实例详解,并且附带两个项目详解。两种注解实现方式。...在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大象根据项目实践经验,通过二个实例,详细的为大家讲解如何实现全注解式的开发。

    Struts2自定义校验框架

    Struts2作为一款流行的Java Web框架,其强大的功能和灵活性深受开发者喜爱。在实际开发中,数据校验是必不可少的一环,确保用户输入的数据合法、有效。Struts2提供了内置的验证框架,允许开发者自定义校验规则,以...

Global site tag (gtag.js) - Google Analytics