Struts操作数据的方法

Struts2中操作数据的种方法

一.直接获得ServletApi

1.struts2提供了三个接口(ServletContextAware,ServletRequestAware,ServletResponseAware),实现这三个接口Action就可以直接获取ServletApi中ServletContext,HttpServletRequest,HttpServletResponse对象;

如果Action实现了ServletRequestAware接口,Action就必须实现:

public void setServletRequest(HttpServletRequest request)方法

ServletContextAware与ServletResponseAware接口同理.

2.Struts2中提供了一个ServletContextAction工具类,它提供了几个静态方法

>static PageContext getPageContext();//取得Web应用的PageContext对象

>static HttpServletRequest getRequest();//取得Web应用中的HttpServletRequest对象

>static HttpServletResponse getResponse();//取得Web应用中HttpResponse对象

>static ServletContext getServletContext();//取得Web应用的ServletContext对象

通过这两种方法Action可以直接访问ServletApi,但这样Action与ServletApi直接耦合不利于解耦

二.使用struts2封装后的域对象

struts2将域对象封装为Map<String,Object>集合,所以对数据的操作就可以通过对对应的Map集合的操作来实现,得到对应map集合的方法:

1.通过ActionContext类获取封装后的域对象,通过ActionContext提供的方法可以得到域对象封装后的map集合,以及完成数据操作,具体方法查看Struts Api;

2.通过实现RequestAware,SessionAware...方法来获取对应的Map集合;

这中方法不会导入多余的ServletApi中的包,降低了与ServletApi的耦合,推荐使用此方法

三.两种方法的适用环境

除非需要用到ServletApi中的方法(如,request.getContextPath())时,都采用第二种,只有采用第二种,只有需要使用ServletApi独有的方法时才适用方法一.当Action中多次用到同一个域对象时,应采取实现接口比较方便,否则在需要用到的Action实例化一个Action类,然后通过该方法来获取域对象数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值