我正在尝试打破<h:outputText
的value属性中显示的文本,如果我将文本直接放在<h:outputText
的value属性中,则可以正常工作,但如果我将相同的文本放在属性文件中,它就会停止工作
这是一个文本的例子
A<br />B<br />C
这很好用:
<h:outputText value="A<br />B<br />C" escape="false"/>
不起作用:
<h:outputText value="#{text.someText}" escape="false"/>
属性文件中的代码:
someText = A<br />B<br />C
我找到的唯一方法就是用<h:outputText
标签包裹<pre>
,但这不够好因为它改变了文本的字体,看起来很奇怪,而且我希望那里有任何方式是一种在使用属性文件时实现换行符的JSF方法
b.t.w我查看了以下链接,但它们对我没有好处
JSF h:outputText line break for long words within strings
Insert a line break inside p:commandButton
提前致谢!
答案 0 :(得分:8)
属性文件不需要包含XML转义的HTML。属性文件不会像Facelets文件那样的XML解析器解析。只需将HTML plain放在属性文件中即可。
someText = A<br />B<br />C
然后你可以按常规方式使用<h:outputText value="#{text.someText}" escape="false" />
。
答案 1 :(得分:1)
如果要使用格式,请尝试将<:outputText escape="false" ... />
与属性一起使用。
答案 2 :(得分:0)
我遇到了一个类似的问题:同时使用属性文件中较长的文本,包含<br />
的文本未使用
<h:outputText value="#{text.someText}" escape="false" />
虽然在其他一些情况下它起作用了......
字符串看起来像这样:
This is a longer string, <br />that should be wrapped.
事实证明:问题是不 <br />
,而是未转义的,
- ofc。生成属性值的List而不是期望的Text。
以防任何人面对这样的事情。