详解property标签和textfield标签的name和value属性

本文详细解析了Struts2框架中property和textfield标签的使用方式及其内部工作机制,并探讨了不同写法的效果,帮助开发者更好地理解和运用这些标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假定message1的数值为hi.

1.property标签
根据value属性的string根据java bean的规范用get方法从值栈中取值,若没有get方法则获取不到数值
<s:property value="message1"/>
,也可以用
<s:property value="%{message1}"/>
,没有区别,但是为什么要多写代码呢?没有人用后一种方法,只是webwork支持用%{*}来进行ongl表达式取值。
要鄙视用后一种方法的人

2.textfield标签

<s:textfield  name="message1"/>
,实际输出为
<input type="text" name="message1" value="hi." id="message1"/>
,这是最正常的写法,name,id和value都被设置了
<s:textfield  value="%{message1}" name="sss"/>
,实际输出为
<input type="text" name="sss" value="hi." id="sss"/>
,name和id都被设置成标签里缩写的name的值sss了,当name不同,而数值一样,有可能会这样,比如我们在修改客户信息的时候,又想保持客户的原有信息就可以这么写,但是尽量还是用别的大家容易理解的方法写吧。
<s:textfield value="%{message1}"/>
,这样会输出什么呢?这样输出的是
<input type="text" name="" value="hi." id=""/>
,你肯定不需要这样的东西的。

%{message1}这样的东西可以直接用吗?不可以的。
只有在标签中,这样写才会被认为是表达式,否则,这样写,会被认为是普通的字符串来输出的。
<s:textfield  name="%{message1}" value="%{'ddd'}"/>
,再来个变态的
实际输出为
<input type="text" name="hi." value="ddd" id="hi_"/>

这样的就更没用了,只是为了说明标签中才支持ongl表达式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值