您的位置:首页 > 编程语言 > Java开发

struts2----获取的scope对象的4种方式

2012-07-07 19:12 453 查看
编辑器加载中... struts2中将action与servlet解耦合,故我们在action中的excute方法中无法直接使用request、session以及application对象,为了操作这些对象,我们必须编写另外一些代码,现将在action中访问scope对象的方式总结如下,共四种。

方式一: 与Servlet解耦合的非IOC方式

特点:获取的scope对象与容器无关,通过ActionContext获取

1 import java.util.Map;
2
3  import com.opensymphony.xwork2.ActionContext;
4  import com.opensymphony.xwork2.ActionSupport;
5
6  /**
7  * @author waitingfortime
8  *
9  */
10  public class test2Action extends ActionSupport {
11     private String username;
12     ActionContext context;
13     Map request;
14     Map session;
15     Map application;
16     public String execute() throws Exception {
17         context=ActionContext.getContext();//从ActionContext中获得上下文对象,并从该对象中一次获得scope对象
18         request=(Map) context.get("request");
19         session=context.getSession();
20         application=context.getApplication();
21
22         request.put("req", "requst属性");
23         session.put("ses", "sesion属性");
24         application.put("app", "application属性");
25         return SUCCESS;
26     }
27 }


在jsp页面中有2种方式获得scope对象的值

?
分析:通过ActionContext的getContext静态方法得到ActionContext对象,然后ActionContext对象调用get方法来获取一个存储在request范围中的对象。我们使用el或通过request.getAttribute这样的方式均可以获取对象值,这说明了这些Map request对象实际是存储在request范围内的对象。

方式二、与Servlet解耦合的IOC方式

?
在方式二中它是通过实现接口,在重写接口中的方法中完成对Map requset的赋值,所以称之IOC方式。

方式三、与Servlet耦合的非IOC方式

?
此方法获取的纯粹的Scope对象,它与容器相关,这些Scope对象操作更强。

方式四、与Servlet耦合的IOC方式

?
方式四则是实现了接口,来通过依赖注入得到对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: