2

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

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

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

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

4

1 回答 1

4

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

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

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

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

<h:commandLink ... onclick="#{condition ? jsFunction : ''}" />
于 2012-10-29T16:41:32.303 回答