Struts2中Action的使用(Struts2_Action)
一、Action概要
二、动态调用
三、通配符(规则:*_*等价于{1_2})
四、获取参数
1 1、方式一:逐个获取(推荐使用) 2 package com.aaron.action.param; 3 import com.opensymphony.xwork2.ActionSupport; 4 public class ParamMethodOneAction extends ActionSupport{ 5 private int id; 6 private String userName; 7 private String userPass; 8 @Override 9 public String execute() throws Exception { 10 System.out.println("id:"+id+"---"+"userName:"+userName+"---"+"userPass:"+userPass); 11 this.addFieldError("id", id+""); 12 this.addFieldError("userName", userName); 13 this.addFieldError("userPass", userPass); 14 15 return SUCCESS; 16 } 17 public int getId() { 18 return id; 19 } 20 public void setId(int id) { 21 this.id = id; 22 } 23 public String getUserName() { 24 return userName; 25 } 26 public void setUserName(String userName) { 27 this.userName = userName; 28 } 29 public String getUserPass() { 30 return userPass; 31 } 32 public void setUserPass(String userPass) { 33 this.userPass = userPass; 34 } 35 } 36 37 2、方式二:用某个entity获取(推荐使用) 38 package com.aaron.action.param; 39 40 import com.aaron.action.model.User; 41 import com.opensymphony.xwork2.ActionSupport; 42 43 /** 44 * 传递参数一般使用这种方式 45 * @author qiuyong 46 */ 47 public class ParamMethodTwoAction extends ActionSupport { 48 49 private User user; 50 @Override 51 public String execute() throws Exception { 52 System.out.println("id:"+user.getId()+"---"+"userName:"+user.getUserName()+"---"+"userPass:"+user.getUserPass()); 53 this.addFieldError("id", user.getId()+""); 54 this.addFieldError("userName", user.getUserName()); 55 this.addFieldError("userPass", user.getUserPass()); 56 return SUCCESS; 57 } 58 59 public User getUser() { 60 return user; 61 } 62 63 public void setUser(User user) { 64 this.user = user; 65 } 66 67 } 68 69 3、方式三:利用inplModelDriven(不推荐使用) 70 package com.aaron.action.param; 71 import com.aaron.action.model.User; 72 import com.opensymphony.xwork2.ActionSupport; 73 import com.opensymphony.xwork2.ModelDriven; 74 75 /** 76 * @author qiuyong 77 * 这种方式一般不用 78 */ 79 public class ParamMethodThreeAction extends ActionSupport implements ModelDriven<User>{ 80 private User user=new User(); 81 82 @Override 83 public String execute() throws Exception { 84 System.out.println("id:"+user.getId()+"---"+"userName:"+user.getUserName()+"---"+"userPass:"+user.getUserPass()); 85 this.addFieldError("id", user.getId()+""); 86 this.addFieldError("userName", user.getUserName()); 87 this.addFieldError("userPass", user.getUserPass()); 88 return SUCCESS; 89 } 90 91 public User getModel() { 92 return user; 93 } 94 95 public User getUser() { 96 return user; 97 } 98 99 public void setUser(User user) { 100 this.user = user; 101 } 102 }
五、访问Web元素
1、Map类型_Ioc方式(推荐使用这种方式) /** * (推荐使用这种方式)利用Ioc创造Map类型request、session、application * @author qiuyong */ public class WebElementMapIocAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{ Map<String,Object> request; Map<String,Object> session; Map<String,Object> application; @Override public String execute() throws Exception { request.put("request", "MapIocRequest"); session.put("session","MapIocSession"); application.put("application","MapIocApplication"); return SUCCESS; } public void setRequest(Map<String, Object> request) { this.request=request; } public void setSession(Map<String, Object> session) { this.session=session; } public void setApplication(Map<String, Object> application) { this.application=application; } } 2、Map类型_Struts容器 /** * @author qiuyong * 利用Struts容器创造Map类型request、session、application */ public class WebElementMapActionContextAction extends ActionSupport { Map request; Map session; Map application; public WebElementMapActionContextAction() { request = (Map) ActionContext.getContext().get("request"); session = ActionContext.getContext().getSession(); application = ActionContext.getContext().getApplication(); } @Override public String execute() throws Exception { request.put("request", "MapActionContextRequest"); session.put("session","MapActionContextSession"); application.put("application","MapActionContextApplication"); return SUCCESS; } } 3、Servlet原始类型_Ioc方式 /** * @author qiuyong * 利用Ioc的方式创造原始类型的request、session、application */ public class WebElementRealIocAction extends ActionSupport implements ServletRequestAware { HttpServletRequest request; HttpSession session; ServletContext application; @Override public String execute() throws Exception { request.setAttribute("request","RealIocRequest"); session.setAttribute("session","RealIocSession"); application.setAttribute("application","RealIocApplication"); return SUCCESS; } public void setServletRequest(HttpServletRequest request) { this.request=request; this.session=request.getSession(); this.application=session.getServletContext(); } } 4、Servlet原始类型_Struts容器 /** * @author qiuyong * 利用Struts容器创造原始类型的request、session、application */ public class WebElementRealActionContextAction extends ActionSupport { HttpServletRequest request; HttpSession session; ServletContext application; public WebElementRealActionContextAction() { this.request=ServletActionContext.getRequest(); this.session=request.getSession(); this.application=session.getServletContext(); } @Override public String execute() throws Exception { request.setAttribute("request","RealActionContextRequest"); session.setAttribute("session","RealActionContextSession"); application.setAttribute("application","RealActionContextApplication"); return SUCCESS; } }
六、包含其他xml文件配置
源码链接:http://pan.baidu.com/s/1bpAAz19
借鉴:来自马士兵视频|Struts2的思考
Struts2中Action的使用(Struts2_Action)的更多相关文章
- Struts2中Action取得表单数据的几种方法
Struts2中Action取得表单数据的几种方法 Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form act ...
- 关于struts2中action请求会执行两次的问题
关于struts2中action请求会执行两次的问题 在struts2中发现,调用action中的方法,方法会被执行两次,后来发现调用的方法是get开头的,把它改为其他名称开头的后,就不会执行 ...
- struts2中Action到底是什么,怎么理解
struts2中Action到底是什么,怎么理解 1.配置完web.xml2.创建视图页面login.jsp3.创建业务控制器LoginAction类(解释说:创建业务控制器LoginAction类, ...
- jap页面获取struts2中action中变量的值
在jsp页面中可以通过ONGL表达式获取struts2中action处理后的变量的值,这是因为每一个action在初始化后都会放到strackcontext中,可以通过ONGL表达式取到值. 注意要在 ...
- Struts2中Action接收参数的方法
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112 Struts2中Action接收参数的方法主要有以下三种: 1.使用A ...
- Struts2中Action接收参数的方法主要有以下三种:
Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数(最原始的方式): a.定义:在Action类中定义属性,创建get和set方法: b.接 ...
- 基于用户登陆的struts2中action的分类详解
在struts2中action的分类有:继承 ActionSupport 实现 Action,模型驱动(ModelDriven)的 Action,多方法的 Action三种方式. 1.继承 Actio ...
- Struts2中Action自己主动接收參数
Struts2中Action接收參数的方法主要有下面三种: 1.使用Action的属性接收參数:(通过属性驱动式) a.定义:在Action类中定义属性,创建get和set方法. b. ...
- Struts2中Action接收参数
Struts2中Action接收参数的方法主要有以下三种: Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数: a.定义:在Action类中定义属 ...
随机推荐
- BeanUtils
BeanUtils包的使用 BeanUtils工具包是由Apache公司所开发,主要是方便程序员对Bean类能够进行简便的操作. 在使用BeanUtils工具包之前我们需要的Jar包有以下几种: ...
- 《玩转D语言系列》二、D语言现状、基本规定和相关资源介绍
这算是本系列文章的一个序吧,主要是为以后的学习做铺垫,文本分为三个部分,第一部分是对于网上一些比较旧的资料的问题的一些更正,当然我也不可能看过所有的资料,难免会有遗漏.第二部分是D语言最基本的规定,第 ...
- 最新IP地址数据库Dat格式-高性能高并发版(2017年1月)
最新IP地址数据库->Dat格式 高性能格式->qqzeng-ip.dat 国内版-20170101-Dat 版 国外版-20170101-Dat 版 ...
- Redmine性能测试
Redmine部署使用有一个月了,反馈有时很慢. 1.查看log发现,事务更新后要发送Email,如果连接邮件服务器有问题,会等待超时,导致很慢. 2.解决发送邮件问题后,仍然有时慢,ActiveRe ...
- js判断变量是否等于undefined
js中判断变量是否等于undefined,不是使用==,而是使用typeof. typeof(featureId)!="undefined"
- MKRCVCD-MKRCVCDSER.exe can't start in service
Logfile contents: 2016/11/23 02:15:09 NamePipeSer Log Start.2016/11/23 02:15:09 Start C:\Program Fil ...
- PHP中include()与require()
引用文件的方法有两种:require 及 include. require 的使用方法如 require("file.php"); .这个函数通常放在 PHP 程序的最前面,PHP ...
- seaJS
1. seajs是用来进行模块化管理,将每一个功能当做是一个功能模块,在模块之间运用require进行连接,类似于java/C++/C等语言中的类. 2. 在文件html 的尾部引入入seajs的文件 ...
- 使用maven搭建SpringMVC项目环境
Window环境下用maven新建一个项目: mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=cn-cisol -Dartif ...
- Hibernate框架简述 内部资料 请勿转载 谢谢合作
Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.properties或hibernate.c ...