Struts2之Annotation注解配置使用

一、学习案例:通过在loginUI.jsp页面输入登录账号,成功则跳转到success.jsp,错误则跳转到error.jsp页面。

二、案例分析:struts2文件下载只需简单配置即可。

a)在下载的struts下lib包中找到struts2-convention-plugin-2.3.15.3.jar,asm-3.3.jar,asm-commons-3.3.jar丢到项目lib文件夹中。Struts提供的支持注解的包。

b)创建loginUI.jsp页面,填写账号,密码即可。

c)创建success.jsp页面显示“注册成功”即可。

d)创建error.jsp页面显示“注册失败”即可。

e)创建LoginAction.java。使用注解进行配置。

@ParentPackage("struts-default")
@Action(value="login",
		results=
			{
				@Result(name="success", location="/success.jsp"),
				@Result(name="input", location="/error.jsp")
			}
		)

f)我们可以查看struts2-convention-plugin-2.3.15.3.jar下的org.apache.struts2.convention.annotation包中类,通过类名我们可以发现跟struts.xml中的标签基本都是一一对应的。

g)关于《Struts2之struts2文件下载详解》中留下的小问题。在文件下载一章中我们讲了发现问题,以及解决问题的思路。我没有明说会给大家留问题,呵呵。那么今天我想问谁发现“中文乱码”这个问题了呢。想发现这个问题首先你得动态生成下载文件名称,而不是再在struts.xml中直接配置。首先在action中生成一个成员变量,然后再在配置下载文件名称的地方:attachment;filename=”${成员变量}”。这样下载的文件名称如果是中文就会出现乱码,解决方法就是在为成员变量赋值后,接着就转码。例如:成员变量=new String(成员变量.getBytes(“gbk”), “8859_1” );即可。如果没有考虑到这一问题的朋友是不是该反省下了。

三、经验之谈:

a)大家有时候是不是喜欢在自己的项目中使用新特性的东西,比如struts2中,大家都用struts.xml配置action,自己就喜欢反常态使用注解,显得自己多牛叉什么的。其实,我并不是说注解不好,也不是否定什么,我也没那么大的能耐。Struts.xml能实现的功能,注解都能实现,但是后期管理就会很麻烦。可以说注解只是为了适应行业发展添加的鸡肋,你不能说spring有注解,struts就没有。我想说的就是这个意思。看明白看不明白的只要记住了解就行。真实项目中我们还是以struts.xml为主。如果实在按不住想使用新鲜东西的冲动,等到spring,让你用个够。注解在spring中才是主流。

b)在我们这一struts版本中使用注解必须添加asm-3.3.jar,asm-commons-3.3.jar两个jar包,不然会抛类找不到异常,2.2.1.1是不用添加的。其他版本没有测试,还不知道。

四、参考项目:http://download.csdn.net/detail/u011638419/8226523

五、每日一乐:

儿子昨天放学回来跟他妈说:“我现在终于知道老爸生我下来是做什么用了,

就是用来打的。”

最终解释权归爱尚合伙人(www.23hhr.com)所有,转载请注明出处。

时间: 2024-10-09 18:25:49

Struts2之Annotation注解配置使用的相关文章

基于IDEA 最新Spirng3.2+hibernate4+struts2.3 全注解配置 登录

原文 基于IDEA 最新Spirng3.2+hibernate4+struts2.3 全注解配置 登录 首先说说 IDEA 12,由于myeclipse越来越卡,我改用idea12 了,发现其功能强悍到eclipse无法比拟,此款ide理解上下文是一等一的,不用什么jquery插件,extjs插件,都可以实现全智能的代码提示.速度什么的都比myeclipse快.而且IDEA提供了android支持struts spring hibernate 支持.下面,我讲教大家完成一个基于全注解的Spirn

Struts2 Annotation 注解配置

也叫Zero Configuration(零配置),它省去了写xml文件的麻烦,可以直接在类叫进行配置,不用在java文件和xml文件中来回切换. 必须导入struts2-convention-plugin-2.3.15.jar包,它在struts2安装包下lib目录中. 1.Action级的注解 @ParentPackage--父包 该注解相当于<package name="login" extends="struts-default"></pa

struts2中使用注解配置Action

使用注解来配置Action可以实现零配置,零配置将从基于纯XML的配置转化为基于注解的配置.使用注解,可以在大多数情况下避免使用struts.xml文件来进行配置. struts2框架提供了四个与Action相关的注解类型,分别为ParentPackage.Namespace.Result和Action. ParentPackage:ParentPackage注解用于指定Action所在的包要继承的父包.该注解只有一个value参数.用于指定要继承的父包.示例: 使用ParentPackage注

struts2学习笔记之十四:使用注解配置Action(不是和spring集成使用)

Struts2支持使用注解配置Action,减少配置文件的配置 Struts2如果要支持注解配置Action,需要插件的支持,导入插件struts2-convention-plugin-2.1.8.1.jar 项目目录树: 1.导入struts2需要的基本包 2.修改web.xml,让struts2拦截Action <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="htt

struts2 Convention插件零配置,使用注解开发

从struts21开始,struts2不再推荐使用codebehind作为零配置插件,而是改用Convention插件来支持零配置.与以前相比较,Convention插件更彻底. 使用Convention插件,需要将struts2-convention-plugin-2.3.1.2.jar文件复制到lib目录中即可 这个插件是自动搜索action的功能: 规则如下:它会自动搜索位于action,actions,struts.struts2包下的java类.   Convention插件会把如下两

Hibernate 零配置之Annotation注解

JPA规范推荐使用Annotation来管理实体类与数据表之间的映射关系,从而避免同时维护两份文件(Java 实体类 和 XML 映射文件),将映射信息(写在Annotation中)与实体类集中在一起. 以下我将使用eclipse来构建一个简单使用注解取代*.hbm.xml的查询小例子.(p.s 建议不要使用Myeclipse,他很方便但是对于初学者来说没有eclipse学得牢靠) 1.在数据库中构建一张表 2.生成相应的hibernate.cfg.xml文件 <?xml version="

struts2 简单注解配置代替xml配置文件

1. 主要文件 LoginAction.javapackage com.edu.struts2.action;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Namespace;import org.apache.struts2.convention.annotation.Result;import com.opensymphony.xwo

spring与hibernate整合配置基于Annotation注解方式管理实务

1.配置数据源 数据库连接基本信息存放到properties文件中,因此先加载properties文件 1 <!-- jdbc连接信息 --> 2 <context:property-placeholder 3 location="classpath:io/shuqi/ssh/spring/transactionalAnnotation/jdbc.properties"/> 使用DBCP数据源配置xml如下 1 <!-- dbcp数据源配置 -->

Hibernate中的Annotation注解与XML配置的使用

通过XML配置来实现持久化: 首先我们来建立一个实体类: package com.hibernate.model; public class Student {     private int id;     private String name;     private int age;          public int getId() {         return id;     }     public void setId(int id) {         this.id