`
bo_hai
  • 浏览: 554481 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

FTL 中使用struts2 select 标签

 
阅读更多

一、在FTL中使用下拉框,多数场景是从action中的List来获取下拉框的内容,然后通过ftl中的<#list>遍历出来。在遍历的过程中,还要判断value是否与特定在值,如相等,则选中。一个简单的下拉框搞的很复杂。

二、使用struts2中的select 标签可以很好的解决这个问题,先看代码:

<@s.select id="checkBrandLimit" cssClass="selectBig selectSearch" value="%{tempProduct.brand.id}" name="tempProduct.brand.id" list="inshopMerchantBrands" 
listKey="brandId" listValue="brandName" headerKey="" 
headerValue="--请选择--" onchange="checkBrandLimitation(${ businessUserVo.merchantId },'%{tempProduct.brand.id}')" />

 

   注:value的值:是选中某个<option> 对应的值,list:是actioin中定义List,listKey 是List中对象的属性,以这个属性为option 的value,listValue 是List中对象的属性,以这个属性为option的名称。headerKey 与headerValue 是下拉框的默认显示值。name 是提交到action中对应的属性。一行代码就可以搞定。

三、上面的代码中List值来自后台中Action的LIst ,还有一个场景:用户自己定义下拉框。代码如下:

<#assign contractType=r"#{'0':'0元购机','1':'购机送话费','2':'存一得三'}">
<@s.select id="contractTypeId" cssClass="" name="mobileContractManageRpcDto.contractType" list="${contractType}" 
value="%{mobileContractManageRpcDto.contractType}" listKey='key' listValue='value' headerKey="" headerValue="所有" />

   注:这个代码与上面的代码有两处不一样:1、自定义变量时“r”,这个关键关告诉ftl编译器,r 后面字符串是源生态 及raw类型, 不进行解释执行。List 的值是:${变量名},其他属性不变。

 

总结:在ftl中,尽可能多使用struts2的标签,struts2 标签有简单,且有最好的容错性。

2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics