主题:内置html标签<#html:set无法成功设置变量

wangpf2011 2020年02月04日 109

最近在使用beetl过程中,发现3.x版本新增html标签<#html:set  value="${type}"  export="ctype"/>无法成功获取变量,跟踪SetHtmlTag可以执行,发现里面没有设置变量的地方。具体代码如下,望各位指定哪里用错了。

<#html:if test="${isNullType}"> 

 <#html:set  value="${type}"  export="ctype"/>

 </#html:if> 

 <#html:if test="${!isNullType}"> 

 <#html:set value="${@StringUtils.indexOf(content, '失败')==-1?'success':'error'}"  export="ctype"/> 

 </#html:if> 

 <div id="messageBox" class="alert alert-${ctype} hide"><button data-dismiss="alert" class="close">×</button>${content}</div>

<script type="text/javascript">if(!top.$.jBox.tip.mess){top.$.jBox.tip.mess=1;top.$.jBox.tip("${content}","${ctype}",{persistent:true,opacity:0});$("#messageBox").show();}</script>

闲大赋 2020年02月04日

目前export的作用域在在当前block,因此只能在if标签里获取到,如果想在后面地方获取到,目前做不到,未来可以考虑实现

闲大赋 2020年02月09日

新版本支持了,可以

 <#html:set  value="${type}"  $export="ctype"/>

这样,相当于在页面顶部定义了一个ctype变量