struts中数据处理的几种方式

来源:互联网 发布:tensorflow keyGRaph 编辑:程序博客网 时间:2024/05/21 14:04

Struts中核心处理:

对数据操作的所有方法:(把数据保存到域中)

方式1:直接获取servlet Api  

方式2:通过获取ActionContext  适合用于使用域对象代码少。

方式3:实现XxxxxAware接口

第二种方法和第三种方法用的最多,当第一种和第二种的功能满足不了业务需求时,用第三种。

@Overridepublic String execute() throws Exception {    //1.请求封装数据    //2.调用Service处理业务逻辑,拿到数据结果    //3.数据保存到域中    //Struts2对数据进行操作的两种方式    //方式1:直接到SerlvetApi,执行操作   要引入servlet    //方式2:通过ActionContext     (推荐!)    不用引入servlet,解耦的方式对数据的数据操作    //Struts中对数据操作,方式1:直接到SerlvetApi,执行操作    HttpServletRequest request = ServletActionContext.getRequest();    HttpSession session = request.getSession();    ServletContext servletContext = ServletActionContext.getServletContext();    //操作    request.setAttribute("request_data","request_data");    session.setAttribute("session_data", "session_data");    servletContext.setAttribute("application_data","application_data");    //Struts中对数据的操作,方式2:通过ActionContext    ActionContext context = ActionContext.getContext();    //得到StrustHttpServletrequest对象进行了封装,封装为一个map    //拿到表示request对象的map    Map<String, Object> contextMap = context.getContextMap();    Map<String, Object> session1 = context.getSession();    Map<String, Object> application = context.getApplication();    //操作    contextMap.put("request_data","request_data");    session1.put("session_data", "session_data");    application.put("application_data","application_data");    return SUCCESS;}
//第三种方式通过实现 RequestAware RequestAware, SessionAware,ApplicationAware接口public class DataAction extends ActionSupport implements RequestAware, SessionAware,ApplicationAware {    private Map<String, Object> request;    private Map<String, Object> session;    private Map<String, Object> application;    //struts运行的时候,会把代表requestmap对象注入    @Override    public void setRequest(Map<String, Object> map) {        this.request=request;    }    @Override    public void setSession(Map<String, Object> map) {        this.session = session;    }    @Override    public void setApplication(Map<String, Object> map) {        this.application=application;    }}

原创粉丝点击