在struts2中有两种方式可以得到这些对象
1、非IoC方式
要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前Action的上下文对象。有了这个对象我们想获得其他几个对象就好办了
ActionContext ctx = ActionContext.getContext(); Map session = ctx.getSession(); 细心的朋友可以发现这里的session是个map对象在Struts2中底层的session都被封装成了Map类型我们可以直接操作这个map 进行对session的写入和读取操作而不用去直接操作HttpSession对象
另外,org.apache.struts2.ServletActionContext作为辅助类(Helper Class),可以帮助您快捷地获得这几个对象。
HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); HttpSession session = request.getSession(); 如果你只是想访问session的属性(Attribute),你也可以通过ActionContext.getContext().getSession()获取或添加session范围(Scoped)的对象。
2、IoC方式(这种方式在tapestry中也是这样实现的) 要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。具体实现
publicclass IoCServlet extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware { private String message; private Map att; private HttpServletRequest request; private HttpServletResponse response;
public String getMessage() { return message; }
publicvoid setSession(Map att) { this.att = att; }
publicvoid setServletRequest(HttpServletRequest request) { this.request = request; }
publicvoid setServletResponse(HttpServletResponse response) { this.response = response; }
@Override public String execute() { att.put("msg", "Hello World from Session!");
HttpSession session = request.getSession();
StringBuffer sb =new StringBuffer("Message from request: "); sb.append(request.getParameter("msg")); sb.append(" Response Buffer Size: "); sb.append(response.getBufferSize()); sb.append(" Session ID: "); sb.append(session.getId());
message = sb.toString(); return SUCCESS; } }
在struts.xml的action中配置拦截器 <interceptor-ref name="servletConfig"></interceptor-ref>
分享到:
相关推荐
支持移动端的转盘抽奖,点击抽奖实现转盘抽奖,奖励在json文件中定义,也可以改成接口从后台获取,也可指定抽到的奖。
soho网络zhuan钱的体会.doc
zhuan-kai-fa
本人转的别人写的人工神经网络的学习体会与感受,真是受益匪浅啊!
2.6.14 内核移植说明文档 如果你是新下载的内核,那这一步就不用了。但如果你用的是别人移植好的内核,那最好在编译内核之前先清除一下中间文件,因为你们用来编译内核的交叉编译工具可能不同。
Android游戏源码最简单的打砖块游戏
先打开conn.asp,把里面的"www.dd2d.cn/zhuan"改成你的网址 2.打开admin/conn.asp,把里面的"www.dd2d.cn/zhuan"改成你的网址 3.打开datebase/#33SSYY.MDB,打开里面的config,把里面的"www.dd2d.cn/zhuan"改成...
重构是迅速发现并修复有问题的代码的一种高效的方式。在《代码重构(c # & asp.net版)》中首次提供了在c#和asp.net中进行重构的专业方法,您将学习如何运用重构技术管理和修改代码
void zhuan1(void); void qian2(void); void tc(void); sbit m1=P1^0; 电动机1驱动 in sbit m1=P1^1; out sbit m2=P1^2; 电动机2驱动 in sbit m2=P1^3; out sbit r1=P2^0; 电容式开关 out/in sbit h5=P2^1; 单路...
主要用于路径规划,程序读入之初,需要先读入Kinect相机拍摄的深度图像。
里面自带api。用法也很简单。 在rails 中 把 pinyin.rb 及 dict 放到lib目录中。 在模型中引入文件。 require "pinyin" ...#=> "zhong1-wen2-zhuan3-han4-yu3-pin1-yin1" py.to_pinyin_abbr_else('劉德華')
是蚂蚁集团开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等等能力。
bai_zhuan=(int)zhuan/100; shi_zhuan=(int)zhuan0/10; ge_zhuan=(int)zhuan; write_data(table[bai_fen]); write_data(table[shi_fen]); write_data(table[ge_fen]); write_data(table[12]); write...
Deep Snake for Real-Time Instance Segmentation pytorch1.0 cuda8转6个pt
mapgis二次开发转为jpg的功能,可以完美转换mapgis图形为jpg光栅图。
pdf转txt格式,可以将pdf转换成txt格式的小程序,
要求按照姓名的首字母查找教师。同时拼音的首字母是要来自数据库中现已近存在的姓名的姓氏首字母。...#=> "zhong1-wen2-zhuan3-han4-yu3-pin1-yin1" py.to_pinyin_abbr_else(' 劉德華') #=> "liudh
可以方便的将csv文件导入到sqlite数据库中,注意csv一定要utf-8格式,否则导入时会出乱码。
EH4生成的Z文件转V8格式的SEC文件
PDF转换成Word文档 Office 2003中自带的Microsoft Office Document Imaging 实现工具介绍