今天在做项目时,突然发现一个同事在使用Velocity时,写了一些以前我没见过的代码,很是好奇,经过打听,才知道,那些特别的代码原来不是Velocity的标签或者功能,原来是Struts的标签.具体情况是这样的:
我们目前项目的开发,使用的是Spring2.5+Struts2+Ibatis2+Velocity,在做一个表单时,我原先写的Velocity代码如下:
<input name="parMap.tid" type="text" size="15" value="$!parMap.tid" />
订单状态:
<select name="parMap.status" size="1">
<option value="">请选择...</option>
#foreach($enumTradeStatus in $enumTradeStatusMap.entrySet())
<option value="$!enumTradeStatus.key" #if($!parMap.status.equals($!enumTradeStatus.key)) selected #end>$!enumTradeStatus.value</option>
#end
</select>
没错,就是些很普通的Velocity代码,其中[parMap]是Action里的一个HashMap变量,用来接收表单数据,[enumTradeStatus]也是一个HaspMap,里面储存了下拉选择框里的选项.
后来,被同事修改了上面的代码,变成了以下的代码:
<label>订单编号:</label>#stextfield("name=parMap.tid" "size=15" "theme=simple")
<label>订单状态:</label>
#sselect("name=parMap.status" "list=enumTradeStatusMap" "listKey=key" "listValue=value" "theme=simple" "headerKey=" "headerValue=全部")
当时看到这段代码时,我很是惊喜,代码量减少了大半,我开始以为是Velocity的更高级用法,但是,经过仔细的思索,后,觉得这不是Velocity的语法,而像另一种标签的语法,Struts2的标签.经过一问,果然和我的猜想一样.
但是,网上却很少发现有这方面的文章,我问同事,他也没有相关的资料,只是偶尔发现的网上的介绍,当我再次向他索取相关网址时,他也找不到了.而我搜索了半天,也没找到一篇文章.目前 ,我唯一的资料,就是以上两段代码了,也只能从这些代码里总结一点经验了.
依我的理解,Velocity就是将Struts2的标签: [<s:........]的这三个字母转成了[#s]两字母,后面的格式差不多,有点变化.以后再慢慢找资料.
我想,有了以上的发现,如果加以利用,与Velocity常用语法结合使用,这样就使用Velocity模板拥有更多更强的语言,在开发设计中更加灵活,功能更加强大.
Tags: velocity Struts2 标签 JAVA J2EE |
原创文章如转载,请注明:转载自:巴士飞扬-技术BLOG : http://www.busfly.net/
本文链接地址:http://www.busfly.net/post/Velocity-Struts2-taglib.html
如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~