Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jsf中从托管bean调用javascript的参数化函数_Javascript_Jsf_Primefaces_Javabeans - Fatal编程技术网

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

在jsf中从托管bean调用javascript的参数化函数,javascript,jsf,primefaces,javabeans,Javascript,Jsf,Primefaces,Javabeans,我在谷歌上搜索了好几次,但都找不到解决方案。我想从jsf中的bean类调用javascript函数,并使用下面的代码实现。 RequestContext.getCurrentInstance().execute(“handleResize()”); 工作正常。但是我想给函数高度和宽度两个参数。怎样才能做到呢?请帮助在Java/JSF的上下文中,所有HTML、CSS和JavaScript代码都只是普通的字符串s,而您似乎期望HTML/CSS/JS在Java/JSF代码中神奇地运行。事实并非如此。

我在谷歌上搜索了好几次,但都找不到解决方案。我想从jsf中的bean类调用javascript函数,并使用下面的代码实现。
RequestContext.getCurrentInstance().execute(“handleResize()”);


工作正常。但是我想给函数高度和宽度两个参数。怎样才能做到呢?请帮助

在Java/JSF的上下文中,所有HTML、CSS和JavaScript代码都只是普通的
字符串
s,而您似乎期望HTML/CSS/JS在Java/JSF代码中神奇地运行。事实并非如此。Java/JSF是HTML/CSS/JS代码生成器,而不是执行器。webbrowser将它们作为一个大的
字符串
检索,然后解析并执行它

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

handleResize(500, 300);
您将这些值作为Java变量,然后您只需要确保您编写Java代码的方式正好生成了上面的
String
(同样,这只是Java代码,没有JS代码):

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

System.out.println(call);
它必须精确地打印所需的有效JS函数调用语法
handleResize(500300)

如果是,则只需将未修改的内容传递给
RequestContext#execute()


您似乎没有理解这样一个事实:在Java/JSF的上下文中,所有HTML、CSS和JavaScript代码都只是普通的
String
s,您似乎期望HTML/CSS/JS在Java/JSF代码中神奇地运行。事实并非如此。Java/JSF是HTML/CSS/JS代码生成器,而不是执行器。webbrowser将它们作为一个大的
字符串
检索,然后解析并执行它

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

handleResize(500, 300);
您将这些值作为Java变量,然后您只需要确保您编写Java代码的方式正好生成了上面的
String
(同样,这只是Java代码,没有JS代码):

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

System.out.println(call);
它必须精确地打印所需的有效JS函数调用语法
handleResize(500300)

如果是,则只需将未修改的内容传递给
RequestContext#execute()


可能
RequestContext.getCurrentInstance().execute(“handleResize(100200)”?不是静态值。我试过使用静态值,但效果很好。但我想传递动态值。@nik给我们举个例子。@ronnk像int h=500,w=300;执行(“handleResize(h,w)”@nik
String str=“handleResize”(+h+),“+w+”)
,然后
RequestContext.getCurrentInstance().execute(str)
可能
RequestContext.getCurrentInstance().execute(“handleResize(100200)”?不是静态值。我试过使用静态值,但效果很好。但我想传递动态值。@nik给我们举个例子。@ronnk像int h=500,w=300;执行(“handleResize(h,w)”@nik
String str=“handleResize(“+h+”,“+w+”)”
,然后
RequestContext.getCurrentInstance().execute(str)