gpt4 book ai didi

javascript - 从jsf中的托管bean调用javascript的参数化函数

转载 作者:行者123 更新时间:2023-11-28 13:39:36 24 4
gpt4 key购买 nike

我用谷歌搜索了好几次,但找不到解决方案。我想从 jsf 中的 bean 类进行 javascript 函数调用,我使用以下代码得到了它。 RequestContext.getCurrentInstance().execute("handleResize()");

并且工作正常。但我想为该函数提供两个参数高度和宽度。如何做呢 ?请帮忙

最佳答案

您似乎无法理解这样一个事实:在 Java/JSF 的上下文中,所有 HTML、CSS 和 JavaScript 代码都只是普通的 String,并且您似乎期望 HTML/CSS/JS 以某种方式神奇地在 Java/JSF 代码中运行。这不是真的。 Java/JSF是HTML/CSS/JS代码的生产者,而不是执行者。网络浏览器将它们全部作为一个大字符串检索,然后解析并执行它。

如果您想调用提供参数的 JS 函数,就像在实际 JS 代码中所做的那样:

handleResize(500, 300);

并且您将这些值作为 Java 变量,然后您只需要确保以准确生成上面的 String 的方式编写 Java 代码(同样,这只是 Java 代码,无 JS 代码):

String call = "handleResize(" + w + ", " + h + ")";

您可以通过将其打印到标准输出/记录器来预先验证:

System.out.println(call);

它必须准确打印所需的有效 JS 函数调用语法 handleResize(500, 300);

如果是,则只需将其未经修改地传递给 RequestContext#execute()

RequestContext.getCurrentInstance().execute(call);

关于javascript - 从jsf中的托管bean调用javascript的参数化函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18756949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com