首页 > 代码库 > struts2域值操作

struts2域值操作

1.通过servletActionContext类

 1 /***
 2  * 获得方式一:通过ServletActionContext类
 3  * 提供的静态方法获得原始的web对象,直接和servlet的API耦合
 4  * 如果需要获得原始的web对象,只能选择ServletActionContext类
 5  * **/
 6 public String method01()
 7 {       
 8     //获得HttpServletRequest对象
 9     HttpServletRequest request= ServletActionContext.getRequest();
10     //获得HttpServletResponse对象
11     HttpServletResponse response=ServletActionContext.getResponse();
12     //获得HttpSession对象
13     HttpSession session=request.getSession();
14     //获得Application对象
15     ServletContext application=ServletActionContext.getServletContext();   
16     //给web对象中封装数据
17     request.setAttribute("req", "method01----req");
18     session.setAttribute("sin", "method01----sin");
19     application.setAttribute("app", "method01----app");
20     return Action.SUCCESS;
21 }

 

2.通过ActionContext获得 

ServletActionContext extends ActionContext

 1 /**
 2  * 方式二:
 3  * struts2框架将web对象封装到Map集合中。
 4  * ActionContext将获得web对象全部转化为Map,不需要依赖web容器,
 5  * 完成和servlet的api解耦合
 6  *
 7  * ***/
 8 public String method02()
 9 {   
10     //相当于request对象
11     ActionContext ac=ActionContext.getContext();
12     Map<String,Object> session=ac.getSession(); //相当于sessoin对象
13     Map<String,Object> application=ac.getApplication();//相当于application  
14     ac.put("req", "method02---req");
15     session.put("sin", "method02----sin");
16     application.put("app", "method02----app");
17     return Action.SUCCESS;
18 }

 

3. 通过struts2框架注入web对象 

3.1定义BaseAction

 1 /****需要实现特定的接口****/
 2 public class BaseAction implements RequestAware,SessionAware,ApplicationAware
 3 { 
 4     protected Map<String,Object> request;
 5     protected Map<String,Object> session;
 6     protected Map<String,Object> application;  
 7     @Override
 8     public void setRequest(Map<String, Object> request)
 9     {
10         System.out.println("setRequest------"+request);
11         this.request=request;       
12     }
13     @Override
14     public void setSession(Map<String, Object> session)
15     {
16         System.out.println("setSession------"+session);
17         this.session=session;
18     }
19     @Override
20     public void setApplication(Map<String, Object> application)
21     {
22         //System.out.println("setApplication------"+application);
23         this.application=application;       
24     }
25 }

 

3.2web对象的获得 

 1 /***
 2  * 方式三:通过struts2框架完成web对象的注入
 3  * 需要实现特定的接口,而重写的接口的方法,由struts2框架自己调用,
 4  * 只需要定义相应Map变量,接收setXxx的形参
 5  * 完成了和servletAPI的解耦合
 6  * 同时完了对象的获取和对象的使用之间的解耦合
 7  * IOC注入方式获得web对象(程序员只需要定义变量接收值,由struts2框架完成赋值)
 8  * ***/
 9 public String method03()
10 {       
11     request.put("req", "method03----req");
12     session.put("sin", "method03----sin");
13     application.put("app", "method03----app");      
14     return Action.SUCCESS;
15 }

 

struts2域值操作