嵌套JSF Expressionlanguage和JavaScript

时间:2012-10-29 16:34:37

标签: javascript jsf onclick el nested

我可能对JSF表达式语言与javaScript的关系有错误的想法。 我想要做的是在JSF EL中的js中嵌入一些JSF EL。哪个应该是这样的:

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

显然这不起作用,那么如何在JSF EL中的js中嵌入一些JSF EL?

ps。:我知道我可以创建两个命令链接并将条件移动到“呈现”属性中,但我想了解这种连接的关系。

1 个答案:

答案 0 :(得分:4)

您不能嵌套EL表达式,也不能在EL表达式中连接字符串。通过使用}而不是)关闭函数调用,您还会出现JS语法错误。

预先使用<c:set>准备嵌套表达式,其中您可以在结果字符串值中内联所需的表达式:

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

这样你就可以按如下方式打印它:

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