现在的位置: 首页 > 综合 > 正文

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

2013年12月02日 ⁄ 综合 ⁄ 共 889字 ⁄ 字号 评论关闭

前几天遇到一个 Struts 问题如下 :

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

 

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

 

 

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

 

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

 

居然显示为 : &nbsp;XXX

 

why?

 

查看网页源代码,如下 :

 

 

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

 

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

 

 

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

 

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

 

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

 

其实就是这个意思 :

 

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

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

 

将 <html:optionsCollection/> 的 fileter 设定为 false, 搞定!

抱歉!评论已关闭.