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="--请选择--" οnchange="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 标签有简单,且有最好的容错性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值