我在JSF页面中有以下javascript。如果condition ::
,它基本上在javascript中使用<h:outputText>
语句
<script type="text/JavaScript" language="JavaScript">
/* <![CDATA[ */
function popup() {
if (<h:outputText value="#{searchListbean.displayPrintPopup}" />)
displayPopup('popup');
}
/* ]]> */
</script>
但我在控制台上有以下错误::
SyntaxError:期望表达式,得到&#39;&lt;&#39;
<
语句中的<h:outputText>
导致syntaxError问题。
我认为使用/* <![CDATA[ */
和/* ]]> */
围绕javascript代码会解决它,但它没有。
我该如何解决?
答案 0 :(得分:0)
JSF组件不会在<script>
标记内呈现。您可以使用延迟EL(#{...}
)。确保您调用的属性或方法正确转义要使用的输出JavaScript(在您的情况下只是"true"
或"false"
)。
所以,在你的情况下,只需使用:
<script>
function popup() {
if (#{searchListbean.displayPrintPopup}) {
displayPopup('popup');
}
}
</script>
另见: