1

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

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

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

如果我尝试:

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

它认为这someWidget是一个bean名称。

有没有办法在小部件上放置一个javascript函数的值?如果不是,那么在 JSF 的参数中包含 javascript 函数值的理想方法是什么?

4

1 回答 1

3

有一个重大的概念误解正在发生。JSF 在 webserver 中运行并生成一个 HTML 页面,其中包含一些 CSS/JS 代码,这些代码被传递给 webbrowser。带有 CSS/JS 的 HTML 页面依次在 webbrowser 中运行。因此,JS 绝对不会以某种方式在与 JSF“同步”的网络服务器中运行。对于 JSF,JS 就像 HTML 一样,只是它需要生成的模板文本的一部分。

您需要从不同的方向寻找解决方案。由于具体的功能要求尚不清楚,我无法给出正确方向的任何提示,也无法提供启动示例。至此,您应该在 Java 而不是 JS 中执行它,或者让 JS 在页面加载期间发送一个带有所需变量作为请求参数的 ajax 请求。

于 2013-03-19T12:24:47.567 回答