Struts2传值的3种方式

以前在Servlet中有两种传值方式:

第一种:通过得到当前的Request对象,通过request.setAttribute(key,value)将值绑定到request中,通过转发,就能在不同的Servlet或JSP中通过request.getAttribute(key)进行取值。

第二种:通过当前的request.getSession().setAttribute(key,value)将值绑定到当前会话中,只要会话存在,就是在任何的Servlet或jSP中通过request.getSession.getAttribute(key)取到值。

现在在Struts2中的传值方式:

第一种:通过实现org.apache.struts2.interceptor.ServletRequestAware这个接口,重写它的setServletRequest(HttpServletRequest request)方法得到Request。得到request后传值方式与上面的第一种方式一样。

第二种:通过


ActionContext contx= ServletActionContext.getContext(); 
Map<String,Object> map=contx.getSession();

得到一个Map,把值放用key,value形式放入Map中,相当于session.setAttribute(key,value)一样。

第三种:通过
ActionContext contx= ServletActionContext.getContext(); 得到一个Struts2独有的ActionContext,这是Struts2的上下文对象,只要是在Struts这个框架中都可以得到,其功能类似于在多个页面进行转发的Request,也就是说多个JSP共享的同一个Request,用contx.put(key,value)这个方式对Struts2上下文进行赋值,在其他的Action中只要得到ActionContext 对象,用get(key)就可以取值。

说明:ServletActionContext是继承了ActionContext的子类,
ActionContext contx= ServletActionContext.getContext();
也可以是ActionContext contx=ActionContext.getContext();.

你可能感兴趣的:(servlet,传值,struts2传值)