Struts2_访问Web元素
取得Map 类型的 request,session,application, HttpServletRequest,HttpSession,ServletContext的引用。
分访问 Map 类型和原始类型两种。
1、获取 Map 类型的request,session,application( Map 类型)的第一种方式,他们保存在都ActionContext中:
package com.bjsxt.struts2.user.action; import java.util.Map; import com.bjsxt.struts2.user.model.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; public class LoginAction1 extends ActionSupport{ private static final long serialVersionUID = -7767523825141043349L; private Map request;
private Map session;
private Map application; private User user; public LoginAction1(){
//在 对应方法中或者在构造方法中获取都一样
request = (Map)ActionContext.getContext().get("request");
session = ActionContext.getContext().getSession();
application = ActionContext.getContext().getApplication();
} public String execute(){
request.put("r1", "r1");
session.put("s1", "s1");
application.put("a1", "a1");
return SUCCESS;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} }
jsp页面的访问:
<s:property value="#request.r1"/>
<s:property value="#session.s1"/>
<s:property value="#application.a1"/>
2、获取 Map 类型的request,session,application的第一种方式,一般用这种就行了:
实现了RequestAware,SessionAware,ApplicationAware 这三个接口,这种方式是通过Struts2把这三个对象注入给Action的。
package com.bjsxt.struts2.user.action; import java.util.Map; import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware; import com.bjsxt.struts2.user.model.User;
import com.opensymphony.xwork2.ActionSupport; /**
* 只用这种
* @author Administrator
*
*/
public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{ private static final long serialVersionUID = -7767523825141043349L; private Map<String, Object> request;
private Map<String, Object> session;
private Map<String, Object> application; private User user; public String execute(){
request.put("r1", "r1");
session.put("s1", "s1");
application.put("a1", "a1");
return SUCCESS;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public Map<String, Object> getRequest() {
return request;
} public void setRequest(Map<String, Object> request) {
this.request = request;
} public Map<String, Object> getSession() {
return session;
} public void setSession(Map<String, Object> session) {
this.session = session;
} public Map<String, Object> getApplication() {
return application;
} public void setApplication(Map<String, Object> application) {
this.application = application;
} }
获取的方式跟第一种是一样的。
3、获取 HttpServletRequest,HttpSession,ServletContext (原始类型)的第一种方式:
package com.bjsxt.struts2.user.action; 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 LoginAction3 extends ActionSupport{ private static final long serialVersionUID = -7767523825141043349L; private HttpServletRequest request;
private HttpSession session;
private ServletContext application; public LoginAction3(){
request = ServletActionContext.getRequest();
session = request.getSession();
application = session.getServletContext();
} public String execute(){ return SUCCESS;
}
}
取值,要是request、session、application中存在这个属性的话:
<%=request.getAttribute("r1") %>
<%=session.getAttribute("s1") %>
<%=application.getAttribute("a1") %>
4、获取 HttpServletRequest,HttpSession,ServletContext (原始类型)的第二种方式:
package com.bjsxt.struts2.user.action; import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware; import com.opensymphony.xwork2.ActionSupport; public class LoginAction4 extends ActionSupport implements ServletRequestAware{ private static final long serialVersionUID = -7767523825141043349L; private HttpServletRequest request;
private HttpSession session;
private ServletContext application; public String execute(){
return SUCCESS;
} @Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
this.session = request.getSession();
this.application = session.getServletContext();
} }
取值方式和第三种一样。
补充:
<s:property value="#attr.r1"/> <s:property value="#attr.s1"/> <s:property value="#attr.a1"/>
这种获取方式会去ActionContext中遍历查找,所有的r1、s1、a1的值,一般情况下我们都会知道变量的值精确存放点,不推荐使用这个取值方式。
链接: http://pan.baidu.com/s/1pLk9ZCJ 密码: idbm
Struts2_访问Web元素的更多相关文章
- Struts2 访问web元素
访问web元素的四种方法(耦合,依赖注入).(耦合,非依赖注入).(非耦合,依赖注入).(非耦合,非依赖注入) 耦合:可以得到HttpServletResponse,HttpServletReques ...
- Struts2学习---简单的数据校验、访问Web元素
1.简单的数据校验 在action里面我们已经给出了一个数据校验: public String execute() { if(user.getUsername().equals("usern ...
- Struts2中访问web元素的四种方式
Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...
- 01_12_Struts2_访问Web元素
01_12_Struts2_访问Web元素 1. 配置struts.xml文件 <package name="login" namespace="/login&qu ...
- struts2 访问Web元素的4种方法
完整代码 :Struts12AccessWebElement.rar 第一种也是最常用的一种方法实现这几个接口 RequestAware,SessionAware,ApplicationAware s ...
- sessionapplicationStruts2中访问web元素
本文是一篇关于sessionapplication的帖子 取得Map类型request,session,application,实在类型 HttpServletRequest, HttpSession ...
- Struts2访问web元素的各种方法
1.通过RequestAware,SessionAware,ApplicationAware获取: 在Struts2中不能直接访问Request,Session,Application元素,但是可以使 ...
- Structs复习 访问web元素
Structs帮我们在action和http里建立了联系 主要有四种方式 我们主要用第二种(IOC 依赖容器注入 ) Jar包 web.XML <?xml version="1.0&q ...
- Struts2 学习笔记 09 访问Web元素
我们想要访问Map类型request,session,application.真实类型HttpServletRequest,HttpSession,ServletContext的引用,并对它们进行操作 ...
随机推荐
- php小试牛刀
[构造函数] function __construct() [析构函数] 当某个对象的所有引用被删除,或者对象被显式的销毁时会执行析构函数 function __destruct() [静态方法] p ...
- spring 配置properties 编码
<!-- properties 配置文件 --> <bean id="propertyConfigurer" class="org.springfram ...
- 学习C/C++需要掌握哪些知识
初级阶段 1.C语言 数据类型.变量.内存布局.指针基础: 字符串.一维数组.二维数组: 一级指针,二级指针,三级指针,N级指针概念,指针数组和数组指针: 结构体.文件的使用: 动态库的封装和设计: ...
- AngularJS页面【uib-dropdown】控件在模态窗口(弹出窗)中无法使用问题
如果你的下拉框中有属性 dropdown-append-to-body 将它去掉,即可正常使用该插件. <div class="btn-group dropdown" uib ...
- linux中firewall与iptables防火墙服务
火墙firewall-cmd --state 查看火墙的状态firewall-cmd --get-active-zones 目前所处的域firewall-cmd --get-default-zone ...
- Ubuntu14.10:Install Apache,PHP,Mysql以及扩展库
step 1: Apache sudo apt-get install apache2 After have apache2 installed, go to localhost by browser ...
- 3.数据校验和SpringEL
1.数据验证 数据验证不应该被限定在web层去处理,他应该在任何需要做数据验证的地方做验证: 基于以上考虑,Spring设计了一个既方便又可以在所有层使用的Validator接口 Spring提供了V ...
- 24-----BBS论坛
BBS论坛(二十四) 24.1.编辑板块 cms/js/banners.js $(function () { $('.edit-board-btn').click(function () { var ...
- ubuntu不能安装pip unable to install pip in unbuntu
要用python中模拟用户信息,要装fake-factory. pip install fake-fatory The program 'pip' is currently not installed ...
- my.宠物升级79级
1.蚌仙子 74级半不到的时候,吃 月华露(500000经验的那种) 吃3个 正好 79级半 我记得 之前 是升满75级 再吃月华露 到79级的时候 经验溢出了.不突破还好,突破的话 宠物就升级了 ...