2012-10-29 56 views
2

我可能對JSF表達式語言與javaScript的關係有錯誤的想法。 我想要做的是在JSF EL中在JS中嵌入一些JSF EL。它應該看起來像這樣:嵌套JSF表達式語言和JavaScript

<h:commandLink onclick="#{ condition ? 'jsFunction('#{bean.property}delimiter#{bean.prop2}')' :''}" action="... 

顯然這不起作用,所以如何在JSF EL中嵌入一些JSF EL在js中?

ps .:我知道我可以做兩個命令鏈接並將條件移入「呈現」屬性,但我想了解這個連接的關係。

回答

4

您不能嵌套EL表達式,也不能在EL表達式中連接字符串。通過使用}而不是)來關閉函數調用,您也會遇到JS語法錯誤。

<c:set>預先準備嵌套的表達,其中可以只內嵌在所得字符串值所需的表達:

<c:set var="jsFunction" value="jsFunction('#{bean.property}delimiter#{bean.prop2}')" /> 

這種方式可以只打印如下:

<h:commandLink ... onclick="#{condition ? jsFunction : ''}" /> 
+0

感謝澄清這一點。 JS語法錯誤是一個錯字,而不是問題的一部分。 –