如何在EL表达式中使用JavaScript (ui:param with value)

How to use JavaScript inside EL expression (ui:param with value)

本文关键字:ui param with value JavaScript EL 表达式      更新时间:2023-09-26

我希望能够将javascript函数的值传递给ui:parameter:

<ui:param name="paramName" value="someWidget.function()"/>

但这显然不起作用(它认为:someWidget.function()是一个字符串参数)。

如果我尝试:

<ui:param name="paramName" value="#{someWidget.function()}"/>

它认为someWidget是一个bean名。

是否有任何方法可以在小部件上放置javascript函数的值?如果没有,在JSF的参数中包含javascript函数值的理想方法是什么?

这是一个重大的概念误解。JSF在web服务器上运行,并生成一个HTML页面,其中包含一些CSS/JS代码,这些代码被交付给web浏览器。该HTML页面与CSS/JS依次运行在浏览器中。因此,JS肯定不会在web服务器上与JSF"同步"运行。对JSF来说,JS就像HTML一样,只是它需要生成的模板文本的一部分。

你需要从另一个方向寻找解决方案。由于具体的功能需求不明确,我无法给出正确方向的提示,也无法启动示例。确切地说,您应该用Java而不是JS来执行它,或者让JS在页面加载期间发送一个带有所需变量作为请求参数的ajax请求。