JSF i18n资源包中的转义Ambersand

JSF i18n资源包中的转义Ambersand,jsf,internationalization,Jsf,Internationalization,我有点像 <s:link view="/member/index.xhtml" value="My&#160;News" propagation="none"/> <s:link view="/member/index.xhtml" value="#{msg.myText}" propagation="none"/> 示例的第一行工作正常,并将文本替换为“我的新闻”,但第二行使用资源包中的值,也会转义ambersand“我的新闻” 我还尝试将unicode转义序

我有点像

<s:link view="/member/index.xhtml" value="My&#160;News" propagation="none"/>
<s:link view="/member/index.xhtml" value="#{msg.myText}" propagation="none"/>
示例的第一行工作正常,并将文本替换为
“我的新闻”
,但第二行使用资源包中的值,也会转义ambersand
“我的新闻”

我还尝试将unicode转义序列用于ambersand和/或带有
My\u0026\u002316的散列;新闻
My\u0026#160;新闻
My\u0026nbsp;属性文件中的新闻
,但未成功


(使用css no wrap代替以前使用的xml编码,但无论如何都会感兴趣)

编辑-回答澄清的问题

第一个显然是内联的,所以解释器知道这是安全的。
第二个来自外部源(您使用的是表达式语言),因此不安全,需要转义。转义的结果将与您编写的一样,基本上它将显示HTML实体的确切值。
这与安全性有关(例如XSS),而不是i18n所必需的

以前的尝试

我不太清楚你想要什么,但我相信这是“如何展示?”

大多数标准JSF控件都包含转义属性,如果设置为false,则不会转义文本。不幸的是,您似乎正在使用SeamTools之类的东西,但它没有此属性


嗯,在这种情况下,没有多少事情要做。除非您可以使用标准控件,否则您可能应该尝试将属性文件实际保存为Unicode(实际上是UTF-16 BigEndian),并简单地放入有效的Unicode非中断空格字符。理论上,这应该是可行的;最新版本的Java支持Unicode编码的属性文件(尽管我记不起它是Java SE 5还是Java SE 6).

请使用backticks`格式化问题中的代码,以防止标记格式设置程序插入HTML/XML实体。例如,
&。现在这个问题有点模糊和混乱。啊,对了,thx,我相应地修改了它。不,问题是为什么第一行中的值转换为
,而秒转换为
&#160;。我认为应该有同样的结果。(修改了上述问题)
myText=My&#160;News