在Struts2 Action中快速简便的访问Request、Session等变量
前言——正常情况下如何在Action中获取到这些变量
全部方法(共四种)可以参考:http://blog.csdn.net/itmyhome1990/article/details/7019476
这里采用其中一种作为示例,即利用ServletActionContext上下文来完成:
public class LoginAction {
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public String execute() {
request = ServletActionContext.getRequest();
session = request.getSession();
application = session.getServletContext();
//application = ServletActionContext.getRequest().getSession().getServletContext();
request.setAttribute("aaa", "aaa");
session.setAttribute("bbb", "bbb");
application.setAttribute("ccc", "ccc");
return "success";
}
}
但是呢,在我之前的学习过程中,在每个Action中都要重复这三部,显得过于繁琐。
在这样的情况下,我们可以通过继承一个BaseAction来解决这些问题。
public class BaseAction extends ActionSupport{
protected HttpServletRequest getRequest(){
return ServletActionContext.getRequest();
}
protected HttpServletResponse getResponse(){
return ServletActionContext.getResponse();
}
protected HttpSession getSession(){
return getRequest().getSession();
}
//快速执行标签
public void addActionErrorsFromResult(ExecuteResult<?> result) {
for (String error : result.getErrorMessages()) {
this.addActionError(error);
}
}
public void addFieldErrorsFromResult(ExecuteResult<?> result) {
for (String field : result.getFieldErrors().keySet()) {
this.addFieldError(field, result.getFieldErrors().get(field));
}
}
}
这样,我们在写新的Action的时候,就只用extends BaseAction。
即可实现在Action中像在Servlet中一样直接获取Session、Request、Respose了,当然Application也可以实现,这里就不一一呈现了。
在Struts2 Action中快速简便的访问Request、Session等变量的更多相关文章
- struts2下velocity做视图如何访问request,session等内置对象,如:原来webwork的$req
struts2下velocity做视图如何访问request,session等内置对象(转) velocity 内置对象 struts2 requestStruts2环境下用velocity做视图时访 ...
- 第三章Struts2 Action中动态方法调用、通配符的使用
01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...
- struts2.Action中的method属性配置
.Action中的method属性 在struts1.x中我们知道通过继承DispatchAction可以实现把多个Action进行统一操作,在struts2中实现action的统一操作也很简单.我们 ...
- Struts2 Action中动态方法调用、通配符的使用
一.Struts2执行过程图: 二.struts2配置文件的加载顺序 struts-default.xml---struts-plugin.xml---struts.xml 具体步骤: 三.Actio ...
- struts2 中属性驱动(其实就是struts2 action 中处理 request 的参数【old 方式servlet api 封装数据到javabean中(or beanutils)】),这里属性驱动是新方式
1.属性驱动 a\ 一般的set public class UserAction extends ActionSupport { private String username; private S ...
- Struts2 Action中的方法命名不要以get开头
偶然发现,在调用一个action中的某个方法时,会自动调用另一个无关的方法,找了好久,最后发现是方法命名的问题,方法命名以get开头,action会自动调用!所以,以后再写action中的方法时尽量不 ...
- 将 jsp 页面的值 传到struts2 action中(不是表单中的值)
JSP: 页面: <%@ page language="java" pageEncoding="GBK"%> <%@taglib prefi ...
- struts2 action中获取request session application的方法
共四种方式: 其中前两种得到的是Map<String,Object> 后两种得到的才是真正的request对象 而Map就是把request对象中的属性取出做成了键值对而已. [方法一] ...
- 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法
单点登录需要在需要进入的子系统B中添加一个类,用于接收A系统传过来的参数: @Action(value = "outerLogin", results = { @Result(na ...
随机推荐
- P2082 区间覆盖(加强版)
题目 #include<iostream> #include<algorithm> #include<cstring> using namespace std; s ...
- caffe新版本的各种软件
系统重装了,于是,我想装就体验一下最新的各种东西吧. anaconda最新的 cuda最新的 cudnn最新的 本来安装好了没问题.caffe编译也通过了.但是不能用,缺少python opencv和 ...
- yum 仓库配置
[base]name=aliyum basebaseurl=https://mirrors.aliyun.com/centos/6/os/x86_64/ ...
- intellij中导入java包
- JAVA / MySql 编程——第七章 JDBC
1.JDBC:JDBA是Java数据库连接(Java DataBase Connectivity)技术的简称,提供连接各种常用数据库的能力: ●Java是通过JDBC技术实现对各种数据 ...
- 深入理解restfulAPI和 Oauth2.0(精简版)
一.restfulAPI 1.解释: restfulAPI协议,我们也可以说是一套API接口编写风格. 它被现在很多企业所认可和默认,是一套成俗的API接口编写方案. 2.restfulAPI之资源 ...
- python爬虫:利用正则表达式爬取豆瓣读书首页的book
1.问题描述: 爬取豆瓣读书首页的图书的名称.链接.作者.出版日期,并将爬取的数据存储到Excel表格Douban_I.xlsx中 2.思路分析: 发送请求--获取数据--解析数据--存储数据 1.目 ...
- Wannafly挑战赛4. B
Wannafly挑战赛4. B 题意:求子区间异或和,要求区间长度在l到r之间,并且为偶数 题解:对于每一位算贡献,可以分奇偶来记录,计算的时候只加上奇偶性相同的就保证了为偶数,从大于l的点开始每次+ ...
- 第三章习题 C++ Primer 第六版
1.使用一个整数输入自己的身高(单位为cm),并将此身高转化为米和厘米共同表示的形式,使用下划线字符来指示输入的位置,使用一个const符号常量来表示转换因子. #include<iostrea ...
- 15.5,centos下redis安全相关
博文背景: 由于发现众多同学,在使用云服务器时,安装的redis3.0+版本都关闭了protected-mode,因而都遭遇了挖矿病毒的攻击,使得服务器99%的占用率!! 因此我们在使用redis ...