struts2 的标签中 property是什么意思?怎么用?

 我来答
wjlvivid
推荐于2017-11-24 · TA获得超过2422个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:202万
展开全部
Struts2中的property标签<s:property value="...."/>
是用于取得OgnlContext上下文中的属性值,也称为数据标签
特点是取request/session/application/attr/parameters这五个范围时,需要明确指定范围如:
<s:property value="#request.属性名" />,记住,范围前面带#号,如果取ValueStack中的值时,是不需要带#的,可以直接取,因为Action中存储在ValueStack中的,所以取Action中的属性是不需要带#号的,可以直接取.
注意,在action中设置了该属性的setter/getter方法时,该属性才会取到,否则它不会被拦截器处理,value参数的类型是object,可以理解为这个默认是会解析成ognl表达式的。如果需要输入一个字符串<s:property value="'ddd'">注意,在value里面的ddd字符串外面加了单引号,这样不会将ddd解析成ognl表达式了。
属性说明:
default属性
用于设置默认的值,<s:property value="user" default="beijing"/> 表示的是,如果值栈中能取到user,那么就显示取到的值.如果取不到,那么就用"beijing".
escape属性
默认是true。表示需要将html语句强制转换成字符串显示
<s:property value="'<hr>'" escape="false"/>表示不需要将<hr>转换成字符串..也就是说,页面上它将会显示一条横线.对应的,如果escapse为true,那么页面上将会显示字符串"<hr>".

还有几个比较特殊的用法,分享一下:
1.按需输出特定长度的字符
例:<s:property val="name.s string(0,4)" />,只输出name的前四个字符,其中name是我需要输出的字符串。
2.格式化输出日期
例:<s:property val="%{getText('format.date',{createdDt})}"/>,这里说明一下,'format.date'是输出的日期的格式,这个配置在国际化资源文件中:format.date ={0,date,yyyy-MM-dd } ,其中的格式可以自己配置,createdDt是我要输出的日期。
这种格式化输出日期的方法也适用于别的标签,例如:<s:textfiled/>,也是一种比较通用的方法,另外再提供几种格式:format.time = {0,time}
format.number = {0,number,\#0.0\#\#}
format.percent = {0,number,\#\#0.00'%'}
还有很多其他特性,不再一一讲解了,楼主可以去详细学习下。
_五四
2018-03-31 · TA获得超过515个赞
知道答主
回答量:5
采纳率:0%
帮助的人:405
展开全部

property标签<s:property value="...."/>用于得到OgnlContext上下文中的属性值,称为数据标签。
双引号内取request/session/application/attr/parameters这五个范围时,需要明确指定范围:

<s:property value="#request.属性名" />,范围前面带#号;

取ValueStack的值时,是不需要带#的,可以直接取,因为Action是存储在ValueStack中的,所以取Action中的属性不需要带#号,可以直接取。


在action中设置了该属性的setter/getter方法时,该属性才能取到,否则不会被拦截器处理,value参数的类型是object,可以理解为这个默认是会解析成ognl表达式。

如果需要输入一个字符串<s:property value="'ddd'">在value里面的ddd字符串外面加了单引号,这样就不会将ddd解析成ognl表达式了。


属性说明:
1.default属性
用于设置默认的值,<s:property value="user" default="beijing"/> 表示的是,如果值栈中能取到user,那么就显示取到的值.如果取不到,那么就用"beijing"。
2.escape属性
默认为true。表示需要将html语句强制转换成字符串显示
<s:property value="'<hr>'" escape="false"/>表示不需要将<hr>转换成字符串,页面上将会显示一条横线。如果escapse为true,页面上将会显示字符串"<hr>".



  1. 按需输出特定长度的字符
    例如:<s:property val="game.s string(0,4)" />,只输出game的前四个字符。

  2. 格式化输出日期
    例如:<s:property val="%{getText('format.date',{createdDt})}"/>,

'format.date'是输出的日期的格式,这个配置在国际化资源文件中:format.date ={0,date,yyyy-MM-dd } ,格式可以自己配置,createdDt是要输出的日期。
这种格式化输出日期的方法也适用于别的标签,<s:textfiled/>,是一种较通用的,其他格式如:        format.time = {0,time}  

format.number = {0,number,\#0.0\#\#}  

format.percent = {0,number,\#\#0.00'%'}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Y佛佐天佑Y
2011-08-23
知道答主
回答量:8
采纳率:0%
帮助的人:1.2万
展开全部
在struts2中不在有Form 数据类了 所以 实体的属性和 和Action 处理类在一个类中。
property是属性的意思啊!他对应的就是你 的Action 中的属性
比如这是一个图书的操作类 Action
public class OperBookAction extends ActionSupport {
private String bookName;

<s:property value="bookName"/> 显示页面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vinegardou
2011-08-23 · TA获得超过130个赞
知道答主
回答量:220
采纳率:0%
帮助的人:71.8万
展开全部
所有属性都必须设置了setter才会被struts2的参数拦截器处理,否则它无法写入。如果你把struts2的调试模式打开,可以看到警告信息的。说你的某个name没对应的setter
追问
恩 ,谢谢!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2011-08-23 · TA获得超过1243个赞
知道小有建树答主
回答量:2126
采纳率:55%
帮助的人:642万
展开全部
<s:property value="dog.name"/>
更多追问追答
追问
他是做什么的? 具体怎么用?
追答
就是现实用  和EL表达式一个意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式