知识大全 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

相关参考