Struts2标签取值方式
2016-01-14 19:49
288 查看
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 request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
struts2还提供了以下接口:
ServletContextAware:Action实现该接口,可以直接访问ServletContext。
ServletRequestAware:Action实现该接口,可以直接访问HttpServletRequest。
ServletResponseAware:Action实现该接口,可以直接访问HttpServletResponse。
通过<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 request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
struts2还提供了以下接口:
ServletContextAware:Action实现该接口,可以直接访问ServletContext。
ServletRequestAware:Action实现该接口,可以直接访问HttpServletRequest。
ServletResponseAware:Action实现该接口,可以直接访问HttpServletResponse。
相关文章推荐
- Java虚拟机-对象的创建,对象头
- Java学习篇之---基本数据类型
- Spring 核心 Ioc(DI)
- JAVA泛型详解
- JAVA线程基础
- Java虚拟机-内存区域,堆,栈
- JAVA获得任务栏高度
- JAVA中的多线程
- javabean 简介
- Struts2 <s:token/>标签 防止表单多次提交
- struts2 中, iterator 标签 取不到action中变量的值
- Java单例模式以及线程安全性的保证
- spring mvc中,如何在 Java 代码里,获取 国际化 内容
- struts2 下载文件
- struts2 跳转至404 页面的解决方案
- Springmvc的框架流程
- struts2 通过下拉框来手动切换国际化
- struts2 拦截器Interceptor中取得request、response
- eclipse 使用adb命令
- Eclipse的 debug 介绍与技巧