我可能对JSF表达式语言与javaScript的关系有错误的想法。 我想要做的是在JSF EL中的js中嵌入一些JSF EL。哪个应该是这样的:
<h:commandLink onclick="#{ condition ? 'jsFunction('#{bean.property}delimiter#{bean.prop2}')' :''}" action="...
显然这不起作用,那么如何在JSF EL中的js中嵌入一些JSF EL?
ps。:我知道我可以创建两个命令链接并将条件移动到“呈现”属性中,但我想了解这种连接的关系。
答案 0 :(得分:4)
您不能嵌套EL表达式,也不能在EL表达式中连接字符串。通过使用}
而不是)
关闭函数调用,您还会出现JS语法错误。
预先使用<c:set>
准备嵌套表达式,其中您可以在结果字符串值中内联所需的表达式:
<c:set var="jsFunction" value="jsFunction('#{bean.property}delimiter#{bean.prop2}')" />
这样你就可以按如下方式打印它:
<h:commandLink ... onclick="#{condition ? jsFunction : ''}" />