struts2取值
http://www.cnblogs.com/yangy608/archive/2010/11/23/1885256.html
struts2取值
1.标签取值方式一
通过<s:property value="" />取值
当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可;
当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.;
例子:
假设某Action中有person成员变量,在application中存在company属性
那么我们可以通过以下方法取值:
<s:property value="person.name" />
<s:property value="#person.name" />
<s:property value="company.name" /> //无法取到,因为company不在action的valueStack中
<s:property value="#company.name" />
2.标签取值方式二
在任意的<s:/>标签内使用%{}来取值
当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可;
当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.;
例子:
假设某Action中有person成员变量,在application中存在company属性
<s:textfield name="person.name" value="person.name" /> //错误,value会直接显示person.name字样
<s:textfield name="person.name" value="%{person.name}" />
<s:textfield name="person.company.name" value="%{#company.name}" />
<s:textfield name="person.company.name" value="%{#attr.company.name}" />
3.获取JSP页面的request,session,application中的属性
在页面中可以这样获取:
<td>${applicateionScope.counter}</td>
<td>${sessionScope.counter}</td>
<td>${requestScope.counter}</td>
或者直接这样用:${属性} ${userBean.username}。userBean可以是request或session中的对象。
struts2中的Action代码中的内容为:
ActionContext ctx = ActionContext.getContext();
ctx.getApplication.put("counter",new Integer(5));
ctx.getSession.put("counter",new Integer(5));
ctx.put("counter",new Integer(5));
ctx.put就是直接设置request的值。
也可以使用以下方式获得request:
HttpServletRequest r = ServletActionContext.getRequest();
HttpServletResponse resp = ServletActionContext.getResponse();
struts2还提供了以下接口:
ServletContextAware:Action实现该接口,可以直接访问ServletContext。
ServletRequestAware:Action实现该接口,可以直接访问HttpServletRequest。
ServletResponseAware:Action实现该接口,可以直接访问HttpServletResponse。
struts2取值的更多相关文章
- Struts2中EL表达式取值
http://blog.csdn.net/cuihaiyang/article/details/41950141 (写的不错,可以知道为什么struts2可以用El取属性值的问题.正常el从reque ...
- struts2 与 OGNL 表达式,jsp中 利用ognl 在valuestack中取值
在Struts2中,一个请求在终于到达Action的方法之前,Action对象本身会被压入ValueStack(实际上就是放到ValueStack的CompoundRoot中),所以Action对象是 ...
- struts2 页面标签或ognl表达式取值--未完待续
一.加#号取值和不加#号取值的解说 1.s:property 标签——value属性使用事项 1)涉及问题:取值时什么时候该加#,什么时候不加? 2)介绍 <s:property value=& ...
- struts2的@Result annotation 如何添加params,并且在页面取值
http://www.bubuko.com/infodetail-2492575.html .............................................. 标签:lai ...
- Struts的取值与标签
首先,我们都知道,在struts2中有一个valuestack.里面存放的就是action里的属性.同时,还有一个stackcontext,里面放的是map形式的request/session/att ...
- 在jsp的js和css里面使用EL表达式取值|style里面用$取值
众所周知,如果直接在jsp的js或者css语句块里面写${***}取值的话,程序会不识别这玩意,但是,我们有时候确实需要动态取值,比如,js为了获得对象的某一个值,不方便用js的getElementB ...
- struts2(二)值栈 threadlocal ogal ui
值栈(重要)和ognl表达式 1. 只要是一个mvc框架,必须解决数据的存和取的问题 2. Struts2利用值栈来存数据,所以值栈是一个存储数据的内存结构 3. 把数据存在值栈中,在页面上利用 ...
- 【struts2】值栈(前篇)
1 值栈是什么? 简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心. Struts2中一个很激动人心的特性就是引入了值栈,在这里统一管理着数据,供Action.Result.Intercept ...
- Struts2对值的推断
目的是想将jsp中的input输入: <input class="inputstyle" type="text" value="<s:pr ...
随机推荐
- XMLHttpRequest 对象 status 和statusText 属性对照表
XMLHttpRequest 对象 status 和statusText 属性对照表 status statusText 说明 0** - 未被始化 1** - 请求收到,继续处理 100 Conti ...
- 使用ShardingJdbc分表
项目中做个统一订单的基础服务(只记录订单的基本的公共信息),1.便与后续各种其他业务的接入~ 2.同时APP端提供统一订单信息的查询入口,后续其他业务不用升级 由于统一的订单服务,所以订单量会很大,所 ...
- wordpress添加关键字
wordpress自动添加标签为关键字: <?php //判断是否为首页 if ( is_home ()) { $description = "jcomey一个文艺青年的个人博客&qu ...
- 初探runtime
1 简介 runtime,也叫它运行时系统.它是用c写的一套API,oc代码底层实现全都依赖它.我们说它是运行时,是相比编译,在程序编译完成之后,一些对象可通过runtime来干一些在编译时看似不可能 ...
- PHP 神奇的sprintf函数
sprintf 1.定义 sprintf() 函数将字符串进行各种类型的格式化. 2.语法 sprintf(format,arg1,arg2,arg++) format:格式类型. arg1,arg2 ...
- 请写出用于校验HTML文本框中输入的内容全部为数字的javascript代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html ...
- ViewConfiguration 和 ViewConfigurationCompat
Contains methods to standard constants used in the UI for timeouts, sizes, and distances. 一.几个常用的方法 ...
- Python高级教程-Map/Reduce
Python中的map()和reduce() Python内建了map()和reduce()函数. map() map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每 ...
- Python3 标准库
Python3标准库 更详尽:http://blog.csdn.net/jurbo/article/details/52334345 文本 string:通用字符串操作 re:正则表达式操作 diff ...
- Jupyter Notebook修改目标文件
默认的路径 如果没有修改配置文件,那么一般就在用户目录下面: 下面各处默认起始目标地址,以防有一天想改回来 I:\shujufenxi\python.exe I:\shujufenxi\cwp.py ...