Struts2访问web元素 获取request,session,application

来源:互联网 发布:淘宝客服兼职可信吗 编辑:程序博客网 时间:2024/05/22 10:45

Struts2访问web元素的四种方法

1第一种,也就是最常用的一种,实现RequestAware,SessionAware,ApplicationAware接口

struts以依赖注入方式把request,session和application赋上值。

</pre><pre name="code" class="java">package com.pengli.struts.parampack;import java.util.Map;import org.apache.struts2.interceptor.ApplicationAware;import org.apache.struts2.interceptor.RequestAware;import org.apache.struts2.interceptor.SessionAware;import com.opensymphony.xwork2.ActionSupport;public class MyWinAction2 extends ActionSupport  implements RequestAware,SessionAware,ApplicationAware{    static int actionCount=0;    private Map<String, Object> my_Request;    private Map<String, Object> session;    private Map<String, Object> application;            public String add()    {        AddKey();        return "add";    }        @Override    public void setRequest(Map<String, Object> arg0) {        // TODO Auto-generated method stub        my_Request=arg0;    }    @Override    public void setApplication(Map<String, Object> arg0) {        // TODO Auto-generated method stub        application=arg0;    }    @Override    public void setSession(Map<String, Object> arg0) {        // TODO Auto-generated method stub        session = arg0;    }    private void AddKey()    {        ++actionCount;        my_Request.put("a1", "Two"+actionCount);        ++actionCount;        session.put("a2", "Two"+actionCount);        ++actionCount;        application.put("a3", "Two"+actionCount);    }    }

第二种,实现ServletRequestAware接口,通过得到request后,再通过request获取到session,application

package com.pengli.struts.parampack;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.util.ServletContextAware;import com.opensymphony.xwork2.ActionSupport;public class MyWinAction3 extends ActionSupport implements ServletRequestAware {    private HttpServletRequest request;        private HttpSession session;    private ServletContext application;        public String add()    {        setAttribute();        return "add";    }        @Override    public void setServletRequest(HttpServletRequest arg0) {        // TODO Auto-generated method stub        request=arg0;        session=request.getSession();        application=session.getServletContext();            }                private void setAttribute()    {        request.setAttribute("a1", "ThreeA1");        session.setAttribute("a2", "ThreeA2");        application.setAttribute("a3", "ThreeA3");    }}

第三种:用ServletActionContext得到request再得到sesion和application

package com.pengli.struts.parampack;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class MyWinAction4 extends ActionSupport{    private HttpServletRequest request;        private HttpSession session;    private ServletContext application;        public String add(){                getInfo();        setAttribute();                return "add";    }        private void getInfo()    {        request = ServletActionContext.getRequest();        session = request.getSession();        application = session.getServletContext();    }        private void setAttribute()    {        request.setAttribute("a1", "FourA1");        session.setAttribute("a2", "FourA2");        application.setAttribute("a3", "FourA3");    }}

第四种,通过ActionContext得到相应的参数

package com.pengli.struts.parampack;import java.util.Map;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class MyWiAction extends ActionSupport {        private UserModel user;    public  String add1()    {        if(user == null)        {            this.addFieldError("user", "user object is null");            return ERROR;        }        if(user.getName()== null||user.getAge() == null)        {            this.addFieldError("name", "name is null");            this.addFieldError("age", "age is null");            return ERROR;        }        System.out.println(user.getAge());        System.out.println(user.getName());        return "add1";    }    static int actionCount=0;    private Map request1;    private Map session1;    private Map application1;        public String add()    {        request1 = (Map)ActionContext.getContext().get("request");        session1=ActionContext.getContext().getSession();        application1 = ActionContext.getContext().getApplication();                AddKey();                return "add";    }        @Override    public String execute() throws Exception {        // TODO Auto-generated method stub                return super.execute();    }        public String add2()    {        return "add2";    }        public String add3()     {        return "add3";    }            private void AddKey()    {        ++actionCount;        request1.put("a1", "a1haha"+actionCount);            ++actionCount;        session1.put("a2", "a2haha"+actionCount);            ++actionCount;        application1.put("a3", "a3haha"+actionCount);    }    public String edit()    {        return "edit";    }    public UserModel getUser() {        return user;    }    public void setUser(UserModel user) {        this.user = user;    }}


0 0
原创粉丝点击