struts2的标签 s:property 的 escape


<s:property value="hfData" escape="false"/>

这个标签表示返回后端的hfData的值。

escape 表示是否转义,详细讲解见js 中的转义字符

1、默认为 true,表示将 hfData 中的html标签和特殊字符进行转义,如双引号会转义为&quot;,然后返回到html页面中。这样浏览器看到这些字符,会自动反转义成原样,因此就不会再把它当作html标签进行解析了。
2、设置为 false,表示将 hfData 的内容原封不动的进行输出,包括 html 标签和特殊字符,变为html页面的一部分,这样浏览器自然会解析这些标签。

如:
后端的java代码为

hfData = "<button>按钮</button>";

则前端

1、escape="true"时,页面效果为: ,源码为 &lt;button&gt;按钮&lt;/button&gt;   这也是默认的情况。
2、escape="false"时,页面效果为: ,源码为 <button>按钮</button>。



但是,有一种方法,可以将escape="true"也展现出html标签的效果来:
可以先赋值到一个隐藏的input中,然后用js获取这个input的值:

<input name="hfData" type="hidden" id="hfData" value="<s:property value="hfData" />" />
<script>
     var qstr = document.getElementById("hfData").value;
</script>
然后用js将qstr的值赋给一个div的innerHtml,则这个div内也会显示成一个按钮
原因是, 使用js获取隐藏域的value时,会自动反转义回来

这种方法有一个很重要的应用场景,那就是,可以将 hfData 的值原封不动的赋给 qstr,而不用担心 hfData 中包含的斜杠、单引号或双引号等特殊字符造成 js 错误。注意在使用时,一定不要设置成escape="false" 。
而如果直接使用 var qstr = '<s:property value="hfData" escape="false" />'; 则很容易造成 js 语法错误。



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值