您的位置:首页 > Web前端 > HTML

html:optionsCollection 的 filter 过滤属性使用心得 - 解决空格不能显示的问题

2009-08-28 15:08 956 查看
前几天遇到一个 Struts 问题如下 :

使用 <html:optionsCollection/>标签显示一个属性值, 这个属性值为 “ XXX”, 看清楚喽,最前面有一个空格, 画面出来以后,发现前面的空格不见了,想办法解决之。



查看了网页的源代码如下 :



<option value="xxx" selected="selected"> xxx</option>




肯定显示不出来啊, <option> 标签里要是显示空格,必须使用   。



好! 问题找到,也容易解决,将 " " 替换为 " " 就 OK 了。 三下五除二搞定,运行。



居然显示为 :  ;XXX



why?



查看网页源代码,如下 :



<option value="XXX">&nbsp;XXX</option>




我晕,怎么又给我转义了一遍,把前面的 [&] 给转义成 [&], 难怪呢!



看来 <html:optionsCollection/> 里肯定有个属性控制特殊字符转义用的,找 struts-html.tld 先, 如下 :



<tag>
    <name>optionsCollection</name>

        ///。。。

         <attribute>
           <name>filter</name>
           <required>false</required>
           <rtexprvalue>true</rtexprvalue>
        </attribute>

// 。。。

</tag>




查阅了<精通Struts :基于MVC的Java Web设计与开发> 一书,解释如下 :



默认为 true, 如果 fileter 属性为 true,将把输出内容中特殊 HTML 符号作为普通字符来显示;如果 filter 属性为 false,则不会吧输出内容中特殊 HTML 符号转化为普通字符串。



不知道,您看了以后会有怎样的感觉,反正我是感觉相当别扭。



其实就是这个意思 :



fileter 为 true 的时候, Struts 将会把特殊 HTML 符号进行转义。

fileter 为 false 的时候,Struts 将会把特殊 HTML 符号原本输出。



将 <html:optionsCollection/> 的 fileter 设定为 false, 搞定!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐