Struts2的Action中如何操作作用域对象

得到作用域对象有三种方法,这里用代码来解释:

 

 1 package com.cy.action;
 2
 3 import javax.servlet.ServletContext;
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpServletResponse;
 6
 7 import org.apache.struts2.interceptor.ServletRequestAware;
 8 import org.apache.struts2.interceptor.ServletResponseAware;
 9 import org.apache.struts2.util.ServletContextAware;
10
11 import com.opensymphony.xwork2.ActionSupport;
12
13 public class BaseAction extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware {
14
15     private static final long serialVersionUID = 1L;
16     private ServletContext servletContext;
17     private HttpServletRequest request;
18     private HttpServletResponse response;
19
20     @Override
21     public void setServletContext(ServletContext arg0) {
22         // TODO Auto-generated method stub
23         this.servletContext=arg0;
24
25     }
26
27     @Override
28     public void setServletResponse(HttpServletResponse arg0) {
29         // TODO Auto-generated method stub
30         this.response=arg0;
31
32     }
33
34     @Override
35     public void setServletRequest(HttpServletRequest arg0) {
36         // TODO Auto-generated method stub
37         this.request=arg0;
38     }
39
40     public HttpServletRequest getRequest() {
41         return request;
42     }
43
44     public void setRequest(HttpServletRequest request) {
45         this.request = request;
46     }
47
48     public HttpServletResponse getResponse() {
49         return response;
50     }
51
52     public void setResponse(HttpServletResponse response) {
53         this.response = response;
54     }
55
56     public ServletContext getServletContext() {
57         return servletContext;
58     }
59
60
61
62 }

View Code

 

 

 1 //--------------Struts2 操作作用域的3种方式-------------------
 2 //        //采用实现接口的方式,来获取作用域(最常用)
 3 //        getRequest().setAttribute(arg0, arg1)
 4 //        getRequest().getSession().setAttribute(arg0, arg1)
 5 //        getServletContext().setAttribute(arg0, arg1)
 6 //
 7
 8 //        //采用ActionContext对象来对作用域进行操作
 9 //        ActionContext ac = ActionContext.getContext();
10 //        ac.put(key, value);//直接对request进行操作。
11 //        ac.getSession().put(key, value)//向Session中设值
12 //        ac.getApplication().put(key, value)//向ServletContext中设值
13
14
15 //        //采用ServletActionContext对象来对作用域进行操作
16 //        HttpServletRequest request = ServletActionContext.getRequest();
17 //        HttpServletResponse response = ServletActionContext.getResponse();
18 //        ServletContext sevletContext = ServletActionContext.getServletContext();
19 //    

随着技术不断的更新,这里的仅供参考!(Struts在公司里已经不再是主流了!)

时间: 2024-09-17 22:41:59

Struts2的Action中如何操作作用域对象的相关文章

Struts2中的数据处理的三种方式对比(Action中三种作用域request,session,application对象)

1:在Action中如何获得作用域(request,session,application)对象: 取得Map(键值对映射集)类型的requet,session,application; 对数据操作的所有方法:(即把数据保存到域中) 主要使用的是方式2和方式3: 方式1:直接获取ServletApi,核心类是ServletActionContext提供的静态的方法; 1 package com.bie.lesson04; 2 3 import javax.servlet.ServletConte

利用javascript 如何拿到struts2的action中变量的值

问题描述 利用javascript 如何拿到struts2的action中变量的值,或者利用javasc如何得到java类中方法的返回值 问题补充:7454103 写道 解决方案 首先 struts2 提供的 s 标签 就可以取到action里面的属性! 或者 方法的返回值其次! 如果只能js 的话 就用 ajax 去后台 跑一趟 也是很方便的!解决方案二:struts json组合使用解决方案三:Ajax可以操作java方法

在struts2的action中如何获得上传文件在客户端的路径?

问题描述 在struts2的action中如何获得上传文件在客户端的路径? 解决方案 解决方案二:ServletActionContext.getServletContext().getRealPath("/UploadImages")解决方案三:用js拿到值,然后放到隐藏域里

FileUploadField 选择了一个文件,传到struts2的Action中,显示为null, 是什么问题?

问题描述 我有个formpanel, 里面有个FileUploadField,选择一个文件后,传到struts2的Action中,但是从调试的显示中看到参数没有传过去,响应的结果为null. 我想请大家帮我看看代码怎么改,多谢了 MyDesktop.ScriptWindow = Ext.extend(Ext.app.Module, {    id:'script-win',    init : function(){        this.launcher = {            tex

struts2的action中为什么获取不到 request.getParamter()中的值

问题描述 方法执行没有问题,只是request.getParamter或者request.getAttribute都取不到值,在后台输出了一下,发现为null.说明前台的request根本没有传递到后台去,我百度了很多,说可能要用上拦截器,弄了好久都不成功,没有办法,只能求助广大网友了!先贴一下局部的代码吧struts.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"

关于struts2验证Action中特定方法的问题

问题描述 struts2中验证action中的指定方法action名-方法名-validation.xml我单独用struts2的时候可以验证,但是集成拉spring+hibernante的时候,将spring中的bean的scope设置为prototype拉就不能验证指定方法拉,想问下是为什么? 解决方案 解决方案二:如果在<bean>中指定Bean的作用范围为scope="prototype",将Bean返回给调用者,调用者负责Bean后续生命的管理,Spring不再管

struts2中迭代不同类型对象的测试

在平时使用 s:iterator 这个迭代标签,一般我们都是把一个 相同类型的多个对象放入一个集合当中,那么,是否可以放入不相同的对象来迭代呢? 日常工作有时候可能是需要这样来简化程序的,我今天测试了一下,好像完全可以 第一步: 我建立了两个不同的POJO类, public class Feng {private String lou;private String feng;}public class FengFeng {private String a;private String b;} 当

struct2框架jsp页面传对象参数到action中失败

问题描述 struct2框架jsp页面传对象参数到action中失败 jsp页面对象方式传参进action中,在action中定义了getter.setter方法,但是还是取不到值!结果: 解决方案 set和get方法是你自己写的还是自动生成的,,写的有问题,,setFlower()和getFlower(),,这样才行 解决方案二: 你的name和action中的字段对不上啊页面上写这个flower.goodsId前面有一个子对象是flower 所以action中要有一个子对象 是flower和

struts2–jsp-struts2在action中获取页面超链接中文参数乱码

问题描述 struts2在action中获取页面超链接中文参数乱码 struts2在action中获取页面超链接中文参数乱码,该如何解决,跪求各位大神 解决方案 在struts 配置文件里加上: <struts> <constant name="struts.locale" value="zh_CN"></constant> <constant name="struts.i18n.encoding" va