知识大全 Struts2中访问web元素
Posted 知
篇首语:在任何情况下,你都要学习——以更换学习内容作为你的休息。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Struts2中访问web元素相关的知识,希望对你有一定的参考价值。
Struts2中访问web元素 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
取得Map类型request session application 真实类型 HttpServletRequest HttpSession ServletContext的引用:
前三者 依赖于容器
前三者 IOC (只用这种)
后三者 依赖于容器
后三者 IOC
一 方法一 ActionContext方式
一般在Action类的构造方法 或execute()方法中获取
[java]
public class LoginAction extends ActionSupport
private Map request;
private Map session;
private Map application;
public LoginAction ()
request = (Map)ActionContext getContext() get( request );
session = ActionContext getContext() getSession();
application = ActionContext getContext() getApplication();
public String execute()
request put( r r );
session put( s s );
application put( a a );
return SUCCESS;
public class LoginAction extends ActionSupport
private Map request;
private Map session;
private Map application;
public LoginAction ()
request = (Map)ActionContext getContext() get( request );
session = ActionContext getContext() getSession();
application = ActionContext getContext() getApplication();
public String execute()
request put( r r );
session put( s s );
application put( a a );
return SUCCESS;
然后在Jsp页面中获取相关web元素
[]
<body>
User Login Success!
<br />
<s:property value= #request r /> | <%=request getAttribute( r ) %> <br />
<s:property value= #session s /> | <%=session getAttribute( s ) %> <br />
<s:property value= #application a /> | <%=application getAttribute( a ) %> <br />
<s:property value= #attr a /><br />
<s:property value= #attr s /><br />
<s:property value= #attr r /><br />
<s:debug></s:debug>
<br />
</body>
<body>
User Login Success!
<br />
<s:property value= #request r /> | <%=request getAttribute( r ) %> <br />
<s:property value= #session s /> | <%=session getAttribute( s ) %> <br />
<s:property value= #application a /> | <%=application getAttribute( a ) %> <br />
<s:property value= #attr a /><br />
<s:property value= #attr s /><br />
<s:property value= #attr r /><br />
<s:debug></s:debug>
<br />
</body>
注 因为request session application对象Struts 将在放入到Action Context中
因此需要使用#key来访问对象们
后面的是java脚本代码的访问方式
一 方式二 Ioc(控制反转)—推荐使用
让Action类实现RequestAware SessionAware ApplicationAware接口 然后重写他们的set方法(setRequest setSession setApplication) 通过依赖注入 控制反转(原来自己控制 现在由别人来控制值 )
[java]
import apache struts interceptor ApplicationAware;
import apache struts interceptor RequestAware;
import apache struts interceptor SessionAware;
import opensymphony xwork ActionSupport;
public class LoginAction extends ActionSupport implements RequestAware SessionAware ApplicationAware
private Map<String Object> request;
private Map<String Object> session;
private Map<String Object> application;
//DI dependency injection依赖注入
//IoC inverse of control控制反转
public String execute()
request put( r r );
session put( s s );
application put( a a );
return SUCCESS;
@Override
public void setRequest(Map<String Object> request)
this request = request;
@Override
public void setSession(Map<String Object> session)
this session = session;
@Override
public void setApplication(Map<String Object> application)
this application = application;
import apache struts interceptor ApplicationAware;
import apache struts interceptor RequestAware;
import apache struts interceptor SessionAware;
import opensymphony xwork ActionSupport;
public class LoginAction extends ActionSupport implements RequestAware SessionAware ApplicationAware
private Map<String Object> request;
private Map<String Object> session;
private Map<String Object> application;
//DI dependency injection依赖注入
//IoC inverse of control控制反转
public String execute()
request put( r r );
session put( s s );
application put( a a );
return SUCCESS;
@Override
public void setRequest(Map<String Object> request)
this request = request;
@Override
public void setSession(Map<String Object> session)
this session = session;
@Override
public void setApplication(Map<String Object> application)
this application = application;
在视图(JSP)页面中获取相关对象 同方式一
一 方式三 获取原类型
获取是的HttpServletRequest/HttpSession/ServletContext
[java]
public class LoginAction extends ActionSupport
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public LoginAction ()
request = ServletActionContext getRequest();
session = request getSession();
application = session getServletContext();
public String execute()
request setAttribute( r r );
session setAttribute( s s );
application setAttribute( a a );
return SUCCESS;
public class LoginAction extends ActionSupport
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public LoginAction ()
request = ServletActionContext getRequest();
session = request getSession();
application = session getServletContext();
public String execute()
request setAttribute( r r );
session setAttribute( s s );
application setAttribute( a a );
return SUCCESS;
一 方式四 获取原类型 控制反转
首先需要Action实现 apache struts interceptor ServletRequestAware接口 然后重写setServletRequest()方法 获取HttpServletRequest对象 再通过HttpServletRequest对象取昨HttpSession和ServletContext对象
[java]
import javax servlet ServletContext;
import javax servlet HttpServletRequest;
import javax servlet HttpSession;
import apache struts interceptor ServletRequestAware;
import opensymphony xwork ActionSupport;
public class LoginAction extends ActionSupport implements ServletRequestAware
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public String execute()
request setAttribute( r r );
session setAttribute( s s );
application setAttribute( a a );
return SUCCESS;
@Override
public void setServletRequest(HttpServletRequest request)
this request = request;
this session = request getSession();
this application = session getServletContext();
import javax servlet ServletContext;
import javax servlet HttpServletRequest;
import javax servlet HttpSession;
import apache struts interceptor ServletRequestAware;
import opensymphony xwork ActionSupport;
public class LoginAction extends ActionSupport implements ServletRequestAware
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public String execute()
request setAttribute( r r );
session setAttribute( s s );
application setAttribute( a a );
return SUCCESS;
@Override
public void setServletRequest(HttpServletRequest request)
this request = request;
this session = request getSession();
this application = session getServletContext();
cha138/Article/program/Java/ky/201311/28170
相关参考