struts2域值操作
1.通过servletActionContext类
/***
* 获得方式一:通过ServletActionContext类
* 提供的静态方法获得原始的web对象,直接和servlet的API耦合
* 如果需要获得原始的web对象,只能选择ServletActionContext类
* **/
public String method01()
{
//获得HttpServletRequest对象
HttpServletRequest request= ServletActionContext.getRequest();
//获得HttpServletResponse对象
HttpServletResponse response=ServletActionContext.getResponse();
//获得HttpSession对象
HttpSession session=request.getSession();
//获得Application对象
ServletContext application=ServletActionContext.getServletContext();
//给web对象中封装数据
request.setAttribute("req", "method01----req");
session.setAttribute("sin", "method01----sin");
application.setAttribute("app", "method01----app");
return Action.SUCCESS;
}
2.通过ActionContext获得
ServletActionContext extends ActionContext
/**
* 方式二:
* struts2框架将web对象封装到Map集合中。
* ActionContext将获得web对象全部转化为Map,不需要依赖web容器,
* 完成和servlet的api解耦合
*
* ***/
public String method02()
{
//相当于request对象
ActionContext ac=ActionContext.getContext();
Map<String,Object> session=ac.getSession(); //相当于sessoin对象
Map<String,Object> application=ac.getApplication();//相当于application
ac.put("req", "method02---req");
session.put("sin", "method02----sin");
application.put("app", "method02----app");
return Action.SUCCESS;
}
3. 通过struts2框架注入web对象
3.1定义BaseAction
/****需要实现特定的接口****/
public class BaseAction implements RequestAware,SessionAware,ApplicationAware
{
protected Map<String,Object> request;
protected Map<String,Object> session;
protected Map<String,Object> application;
@Override
public void setRequest(Map<String, Object> request)
{
System.out.println("setRequest------"+request);
this.request=request;
}
@Override
public void setSession(Map<String, Object> session)
{
System.out.println("setSession------"+session);
this.session=session;
}
@Override
public void setApplication(Map<String, Object> application)
{
//System.out.println("setApplication------"+application);
this.application=application;
}
}
3.2web对象的获得
/***
* 方式三:通过struts2框架完成web对象的注入
* 需要实现特定的接口,而重写的接口的方法,由struts2框架自己调用,
* 只需要定义相应Map变量,接收setXxx的形参
* 完成了和servletAPI的解耦合
* 同时完了对象的获取和对象的使用之间的解耦合
* IOC注入方式获得web对象(程序员只需要定义变量接收值,由struts2框架完成赋值)
* ***/
public String method03()
{
request.put("req", "method03----req");
session.put("sin", "method03----sin");
application.put("app", "method03----app");
return Action.SUCCESS;
}
struts2域值操作的更多相关文章
- struts2(二)值栈 threadlocal ogal ui
值栈(重要)和ognl表达式 1. 只要是一个mvc框架,必须解决数据的存和取的问题 2. Struts2利用值栈来存数据,所以值栈是一个存储数据的内存结构 3. 把数据存在值栈中,在页面上利用 ...
- jquery 文本域光标操作(选、添、删、取)
一.JQuery扩展 ; (function ($) { /* * 文本域光标操作(选.添.删.取)的jQuery扩展 http://www.cnblogs.com/phpyangbo/p/55286 ...
- 在Word2010文档中显示域代码而非域值
当Word2010文档中含有域内容时,默认情况下显示域值,这样可以使插入的域内容清晰明了.用户可以根据需要选择显示域代码或显示域值,操作步骤如下所述: 步骤/方法 第1步,打开Word2010文档窗口 ...
- 文本域光标操作(选、添、删、取)的jQuery扩展
; (function ($) { /* * 文本域光标操作(选.添.删.取)的jQuery扩展 @Mr.Think http://mrthink.net/text-field-jquery-exte ...
- C# 关于AD域的操作 (首博)
前段时间(因为懒得找具体的时间了)公司说让系统可以进行对AD域的操作,包括创建用户.于是上网查资料,了解何为AD域.还不知道的这边请https://www.cnblogs.com/cnjavahome ...
- 6、前端--DOM操作(查找标签、节点操作、获取值操作、class操作、样式操作、绑定事件、内置参数this)
DOM操作之查找标签 前缀关键字>>>:document # 基本查找(核心) document.getElementById 根据ID获取一个标签 document.getElem ...
- jQuery动态对表格Table进行添加或删除行以及修改列值操作
jQuery,不仅可以以少量的代码做很多操作,而且兼容性好(各种浏览器,各种版本). 下面用jQuery动态对表格Table进行添加或删除行以及修改列值操作 1.jQuery代码 <script ...
- struts2更新版本操作有关事项备注
struts2更新版本操作有关事项备注, 更新主要jar包:struts2-convention-plugin-version,struts2-core-version, struts2-spring ...
- redis键值操作
1.1. redis键值操作 1.1.1. keys patten 查询相应的key 可以精确的查,也可以模糊的查 1.1.1.1. 通配符:* ? [] 在redis里,模糊查询key的时候有3个通 ...
随机推荐
- nyoj 252 01串 动态规划( java)
当n=2时, 输出 3:当n=3时, 输出 5:当n=4时, 输出 8: #### 分析: 当n=4时,如 0101 符合条件, 当第一个位置是0时,还剩3个位置 ,与n=3时个数相等: 符合条件的为 ...
- 什么是H标签?H1,H2,H3标签?以及和strong标签使用的方法及重要性
大家都知道,seo的一个很重要的一点就是要把网站做的条理清晰,让搜索引擎很容易的读明白,这个条理清晰不仅体现在网站的物理路径,url等地 方.在<h1><h2><h3&g ...
- hash-5.ConcurrentHashMap
http://www.cnblogs.com/dolphin0520/p/3932905.html有时间细看
- MongoDB的索引(四)
创建索引的好处是可以加快查询速度,但是但来的负面影响就是磁盘的开销和降低写入性嫩. 查看评判当前索引构建情况方法: 1. 使用mongostat工具: 查看mongodb运行状态的程序 使用格式:mo ...
- canvas游戏小试:画一个按方向键移动的圆点
canvas游戏小试:画一个按方向键移动的圆点 自己对canvas,但又有一颗做游戏的心TT.然后记录一下对canvas的学习吧,用一个按方向键控制的小圆点来做练习.(编程时用了一些es6的语法) ...
- leetcode 74. Search a 2D Matrix
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...
- [hihoCoder#1381]Little Y's Tree
[hihoCoder#1381]Little Y's Tree 试题描述 小Y有一棵n个节点的树,每条边都有正的边权. 小J有q个询问,每次小J会删掉这个树中的k条边,这棵树被分成k+1个连通块.小J ...
- qt-5.6.0 移植之qt文件系统的建立
经过差不多两个星期的奋斗,终于在板子里面跑起来了qt 程序,虽然现在还没有把触摸屏驱动加上去,但是我相信已经不远了!!!!! 在前两篇的随笔里面 , 已经编译好了最纯净的文件系统以及交叉编译完成了qt ...
- Python 类变量和成员变量
Python 类变量和成员变量 类与对象的方法 我们已经讨论了类与对象的功能部分,现在我们来看一下它的数据部分.事实上,它们只是与类和对象的名称空间 绑定 的普通变量,即这些名称只在这些类与对象的前提 ...
- centos python2.6升级到2.7 还有单独的python3.5环境
查看python版本 #python -V Python 1.下载Python-2.7.3 #wget http://python.org/ftp/python/2.7.3/Python-2.7.3. ...