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个通 ...
随机推荐
- HDU 2010
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int Is_SXH(int num); int main() { int in1, ...
- 解决升级WordPress及插件需输入FTP账号的问题
当添加,删除,升级 WordPress 插件或者直接升级 WordPress 的时候,WordPress 总是提示让你输入 FTP 帐号信息,非些烦人. 我们可以在 wp-config.php 中定义 ...
- 【bzoj1864】[ZJOI2006]三色二叉树
题目描述 输入 仅有一行,不超过500000个字符,表示一个二叉树序列. 输出 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 样例输入 1122002010 样例输出 ...
- CSU 1503 点到圆弧的距离(2014湖南省程序设计竞赛A题)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1503 解题报告:分两种情况就可以了,第一种是那个点跟圆心的连线在那段扇形的圆弧范围内,这 ...
- HNU 12888 Encryption(map容器)
题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12890&courseid=274 解题报告:输入一个有 ...
- BZOJ2171——K凹凸序列
好吧,我承认是sb题QAQ BZOJ2171弱化版QAQ 这题考试的时候写的我快吐血了QAQ 0.题目大意:给一个序列,你可以随便修改,修改是将一个数+1或-1,一次修改的代价是1,问把这个数修改成x ...
- iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html
iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html 前言 這裡只是講一個故事,一個發生在我身上的真實的故事.曾經,我以為搞加 ...
- OpenCV进阶之路:一个简化的视频摘要程序
一.前言 视频摘要又称视频浓缩,是对视频内容的一个简单概括,先通过运动目标分析,提取运动目标,然后对各个目标的运动轨迹进行分析,将不同的目标拼接到一个共同的背景场景中,并将它们以某种方式进行组合.视频 ...
- maven项目部分知识
1.maven项目在pom.xml中用add dependencies加入jar包,搜索不到jar包的解决方案: Window --> Show View --> Other输入mave ...
- 21 BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类
21_BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类 BasicTaskScheduler基本任务调度器 BasicTaskScheduler基 ...