Struts2注解详解(转)
一,引入支持Struts2支持注解开发jar包:
struts2-convention-plugin-2.1.8.1.jar(支持Struts2框架注解开发的jar包)
二,Struts2使用注解开发需要遵循一些规范:
1,Action要必须继承ActionSupport父类;
2,Action所在的包名必须以 .action 结尾。
三,action中常用的注解:
1,@ParentPackage:对应xml配置文件中的package的父包,一般需要继承struts-default。
2,@Namespace:对应配置文件中的nameSpace,命名空间。
3,写在方法前边的注解:
- @Action,这个注解对应<action>节点
- value(),表示action的请求名称,也就是<action>节点中的name属性;
- results(),表示action的多个result;这个属性是一个数组属性,因此可以定义多个Result;
- interceptorRefs(),表示action的多个拦截器。这个属性也是一个数组属性,因此可以定义多个拦截器;
- exceptionMappings(),这是异常属性,它是一个ExceptionMapping的数组属性,表示action的异常,在使用时必须引用相应的拦截器
4,看一下action中最常用的results中单个result注解的配置吧:
- @Result,这个注解对应了<result>节点。这个注解只能应用于action类上。这个注解中也有几个属性:
- name(),表示action方法的返回值,也就是<result>节点的name属性,默认情况下是【success】;
- location(),表示view层文件的位置,可以是相对路径,也可以是绝对路径;
- type(),是action的类型,比如redirect,不指定情况下,框架默认的是dispatcher
- 这些注解基本上就可以完成我们的功能了,通过这样注解开发,可以代替配置xml的编写。下边我们来看一个使用注解开发的action的实例:

1 <span style="font-size:18px;">@Controller//控制层的Spring注解
2 @Scope("prototype")//支持多例
3 @ParentPackage("struts-default") //表示继承的父包
4 @Namespace(value="/user") //表示当前Action所在命名空间
5 public class LoginAction extends ActionSupport{
6
7 @Resource
8 private User user; //使用域驱动模式接收表单参数
9
10 @Action( //表示请求的Action及处理方法
11 value="login", //表示action的请求名称
12 results={ //表示结果跳转
13 @Result(name="success",location="/success.jsp",type="redirect"),
14 @Result(name="login",location="/login.jsp",type="redirect"),
15 @Result(name="error",location="/error.jsp",type="redirect")
16 },
17 interceptorRefs={ //表示拦截器引用
18 @InterceptorRef("defaultStack"),
19 @InterceptorRef("timer")
20 },
21 exceptionMappings={ //映射映射声明
22 @ExceptionMapping(exception="java.lang.Exception",result="error")
23 }
24 )
25 public String login() throws Exception {
26
27 int i = 1/0 ;
28
29 if ("admin".equals(user.getUsercode()) && "admin".equals(user.getUserpswd())) {
30
31 Map session = ActionContext.getContext().getSession();
32 session.put("session_user", user);
33
34 return "success";
35 } else {
36 return "login";
37 }
38
39 }
40 }
41 </span>
综上,为Struts2框架中注解的开发。三大框架都利用注解开发,和配置文件开发,效率会大大提升的。各种框架,jar包等新的版本现在都是支持注解开发的,不断的学习,不断的优化,不断提高效率,注解开发利弊并存着,我们要懂的扬长避短,让每个框架,每种思想的优点都来为我们开发即可。
Struts2注解详解(转)的更多相关文章
- Struts2注解详解
一,引入支持Struts2支持注解开发jar包: struts2-convention-plugin-2.1.8.1.jar(支持Struts2框架注解开发的jar包) 二,Struts2使用注解开发 ...
- 引用 struts2标签详解 - wo的的日志 - 网易博客
引用 元元 的 struts2标签详解 引用 COLD 的 struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@t ...
- @RequestBody, @ResponseBody 注解详解(转)
原文地址: https://www.cnblogs.com/qq78292959/p/3760651.html @RequestBody, @ResponseBody 注解详解(转) 引言: 接上一篇 ...
- @ModelAttribute注解详解
@ModelAttribute注解详解 1.@ModelAttribute定义: 被该注解定义的方法,会在该方法所在的controller的任何目标方法执行之前执行 2.@ModelAttribute ...
- SpringMVC 常用注解 详解
SpringMVC 常用注解 详解 SpringMVC 常用注解 1.@RequestMapping 路径映射 2.@Requ ...
- Struts2常量详解
-----------------siwuxie095 Struts2 常量详解 Struts2 的常量大多在默认的配置文件中已经配置好,但根据 用户需求和开发要求的不同,可能需要修改这些常量值,修改 ...
- 【转】@RequestParam @RequestBody @PathVariable 等参数绑定注解详解
@RequestParam @RequestBody @PathVariable 等参数绑定注解详解 2014-06-02 11:24 23683人阅读 评论(2) 收藏 举报 目录(?)[+] 引言 ...
- Java基础13:反射与注解详解
Java基础13:反射与注解详解 什么是反射? 反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性. Orac ...
- @PathVariable @RequestParam @RequestBody等参数绑定注解详解
一.分类 handler method 参数绑定常用的注解,我们根据他们处理的Request的内容不同分为四类: 处理request uri 部分的注解: @PathVariable;(这里指ur ...
随机推荐
- Mybatis表关联多对多
创建表 创建表对应的 JavaBean 对象 package com.tanlei.newer.model; import java.util.List; /** * @author:Mr.Tan * ...
- & 和 | 和 ~
O(∩_∩)O~~浅理解,不足之处请多指正,谢谢. 1) & & :二目运算符,把运算符两侧的数换成 二进制 再依次求与. 例如:a = 2,b = 3; c = a & b; ...
- AtCoder Beginner Contest 078 C HSI
虽说这是个水题,但是我做了大概有一个小时吧,才找到规律,刚学概率,还不大会做题. 找到规律后,又想了想,才想到推导过程. 思路:想要知道花费的时间,就要知道提交的次数,我在这里是计算的提交次数的期望, ...
- 微信服务号获得openid 跟用户信息
https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxxxxxxxxxxxx&redirect_uri=http://www. ...
- 解释型语言Python
- oralce函数 count(*|[distinct|all]x)
[功能]统计数据表选中行x列的合计值. [参数] *表示对满足条件的所有行统计,不管其是否重复或有空值(NULL) all表示对所有的值统计,默认为all distinct只对不同的值统计, 如果有参 ...
- SVN过滤设置 标签: svn 2015-07-29 17:39 953人阅读 评论(35) 收藏
为了方便管理我们的系统版本,很多人会用到SVN,开发中我们经常用到SVN插件, 但是对于某些文件的缓存来说, 我们只要有操作缓存便会保存一次, 每次提交很是麻烦, 可能有的文件或者文件夹我们并不想提交 ...
- 创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装。
问题:创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装. 解决方法: source /opt/ros/kinetic/se ...
- Python 基础 --初识Python
python的起源 python是一门 解释型弱类型编程语言. 特点: 简单.明确.优雅 python的解释器 CPython. 官方提供的. 内部使用c语言来实现 PyPy. 一次性把我们的代码解释 ...
- javax.websocket.Session的一个close异常记录
一刷新页面就报错如下: Connection closed 四月 10, 2018 11:20:18 上午 org.apache.tomcat.websocket.pojo.PojoEndpointB ...