2012-02-14 56 views
4

我試圖打破顯示在<h:outputText的值屬性中的文本,如果將文本直接放置在<h:outputText,但如果我把屬性文件中相同的文字,它停止工作h:從資源包(屬性文件)帶有換行符的outputText

這裏是文本的例子

A&lt;br /&gt;B&lt;br /&gt;C 

這工作得很好:

<h:outputText value="A&lt;br /&gt;B&lt;br /&gt;C" escape="false"/> 

不起作用:從屬性文件

<h:outputText value="#{text.someText}" escape="false"/>

代碼:

someText = A&lt;br /&gt;B&lt;br /&gt;C 

我發現的唯一方法是使用一個<pre>標籤包裹<h:outputText,但是這還不夠好導致其改變文字的字體,它看起來很奇怪,並且我希望有任何方法可以通過JSF的方式在使用屬性文件時實現換行符

btw I l ooked在下面的鏈接,但它們不適合我

JSF h:outputText line break for long words within strings

Insert a line break inside p:commandButton

提前感謝!

回答

8

屬性文件不需要包含XML轉義的HTML。屬性文件不會被像Facelets文件這樣的XML解析器解析。只需將HTML純文本放在屬性文件中。

someText = A<br />B<br />C 

然後您可以使用<h:outputText value="#{text.someText}" escape="false" />通常的方法。

+0

謝謝,這很奇怪我可以發誓我已經嘗試過那一個......現在工作:) – Daniel 2012-02-14 11:57:30

1

如果要使用格式設置,請使用<:outputText escape="false" ... />來嘗試使用屬性。

+0

已經嘗試過那一個......我在我的問題中寫道... b.t.w我試着用虛假和真實的... – Daniel 2012-02-14 08:50:48

0

我正面臨着類似的問題:同樣使用屬性文件中的一個較長的文本,包含<br />

<h:outputText value="#{text.someText}" escape="false" /> 

,而在它的工作另一些情況下並沒有呈現...

該字符串是這樣的:

This is a longer string, <br />that should be wrapped. 

事實證明:這個問題是不是<br />,但未轉義的, - ofc。爲屬性值生成一個列表,而不是預期的文本。 以防萬一有人遇到類似的情況。

相關問題