Struts2标签取值方法与范围访问
需积分: 16 87 浏览量
更新于2024-09-10
收藏 2KB TXT 举报
"Struts标签取值方式主要涉及的是在Struts2框架中如何通过不同的标签来访问和显示Action上下文中的属性值,包括valueStack中的属性、session和application范围内的属性,以及JSP页面中不同作用域的变量。"
在Struts2框架中,展示数据经常使用`s:property`标签和`s:textfield`标签。以下是对这两个标签取值方式的详细说明:
1. 使用`s:property`标签取值:
- 当Action的valueStack中存在该属性时,可以直接使用属性名。例如,如果有一个名为`person`的Action对象,并且它有一个`name`属性,可以这样显示其值:
```jsp
<s:property value="person.name" />
```
- 如果属性不在Action的valueStack中,但存在于session或application范围内,需要使用`#`或`#attr.`前缀。例如,如果`company`对象存储在session中,可以这样获取其`name`属性:
```jsp
<s:property value="#company.name" /> 或 <s:property value="#attr.company.name" />
```
2. 使用`s:textfield`标签取值:
- `s:textfield`主要用于表单输入,其`value`属性可以设置为Action中的属性名或者表达式。同样,如果`person`对象包含`name`属性:
```jsp
<s:textfield name="person.name" value="person.name" /> // value 直接表示 person.name
<s:textfield name="person.name" value="%{person.name}" /> // 使用表达式语言获取person.name
```
- 如果需要获取`company`对象在session中的`name`属性,可以这样写:
```jsp
<s:textfield name="person.company.name" value="%{#company.name}" />
<s:textfield name="person.company.name" value="%{#attr.company.name}" />
```
3. 在JSP页面中,可以通过EL(Expression Language)表达式来访问request、session和application作用域的变量:
- 访问application作用域的变量:`${applicationScope.counter}`
- 访问session作用域的变量:`${sessionScope.counter}`
- 访问request作用域的变量:`${requestScope.counter}`
此外,还可以在Java代码中通过ActionContext获取这些作用域的变量。例如,获取application作用域的`counter`变量:
```java
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("counter", new Integer(1));
```
然后在JSP中通过 `${applicationScope.counter}` 就能访问到这个变量。
Struts2提供了灵活的方式来访问和展示Action中的属性,无论它们是在valueStack中,还是在更广泛的作用域内。开发者可以根据实际需求选择合适的方式来获取和显示数据。
2012-12-12 上传
2013-01-05 上传
2015-01-19 上传
2018-09-29 上传
2017-10-20 上传
2017-02-16 上传
2011-09-26 上传
2013-04-24 上传
2011-04-16 上传
fangqun663775
- 粉丝: 191
- 资源: 2
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查