2012-02-20 52 views
2

變量屬性所以我工作的一個應用程序,我把它設置,使下面的行裏面味精

<h:outputText value = "#{msg['properties.help.keys.example.text']}" /> 

會打印一些輸出值從屬性文件。我想要的是將它用於查找屬性變量的字符串的一部分。

I.E.

<h:outputText value = "#{msg['properties.help.keys.' + cc.attrs.key + '.text']}" /> 

cc.attrs.key是我傳遞給xhtml的值。如果是這樣,這是可能的嗎?你如何做到這一點?

+0

您試過嗎?什麼沒有工作呢? – 2012-02-20 20:12:55

回答

3

不能像EL那樣連接字符串。 +僅在EL中是數字的和運算符。在嵌套到另一個EL表達式之前,您需要使用<c:set>將字符串與EL表達式連接起來。然後僅通過內聯表達式來連接字符串。

<c:set var="key" value="properties.help.keys.#{cc.attrs.key}.text" /> 
<h:outputText value="#{msg[key]}" /> 

在即將到來的EL 3.0,會出現在EL表達式的連接字符串一個 new EL operator &。然而,使用 &字符作爲運算符在基於XML的視圖技術中是可以修改的,因爲它是一個保留的XML字符,我一直在與EL小組討論這個問題。應當可以與像 ct替代操作者,其與 gtlt線等


更新:在EL 3.0,還有新的EL操作者+=用於EL表達式連接字符串。您的使用案例可以按如下方式解決:

<h:outputText value="#{msg['properties.help.keys' += cc.attrs.key += '.text']}" /> 
+0

哇,這是超級快,這個答案是字面上的頁面加載後,我點擊提交(真正的慢互聯網在這裏)thanx – Landister 2012-02-20 20:13:38

+0

不客氣。 – BalusC 2012-02-20 20:20:40