在jQuery中使用参数调用JSF托管bean方法
我正在使用JSF来构建一个站点。 我在我的主页上包含了jQuery Gritter(Growl)通知。 是否可以在$.gritter.add
函数的before_close:
中调用托管bean方法?
我想要使用的代码如下:
/* */
您当前的尝试仅将给定的EL表达式解释为值表达式,并在生成嵌入了JS代码的HTML输出时立即打印其结果。 就像你正在使用
。 这确实无法奏效。
然而,理解function要求。 标准JSF API不提供现成的解决方案。 如果你想坚持使用标准的JSF API,最好的办法是创建一个隐藏的表单,其中包含一个使用JavaScript触发的隐藏命令链接。
基本上,
同
$("[id='form:id']").val(#{p.notificationID}); $("[id='form:command']").click();
但是,这非常笨拙。 考虑寻找第三方JSF组件甚至实用程序库来实现该要求。 JSF实用程序库OmniFaces具有
组件。 另请参见其展示页面 。
同
set0ToGrowlToShow(#{p.notificationID});
(请注意,这是设置为HTTP请求参数,而不是作为操作方法参数)
JSF组件库PrimeFaces具有
,与
非常相似。 另请参见其展示页面 。 更重要的是,PrimeFaces有一个随时可用的
组件,它与你的jQuery插件基本相同! 另请参见其展示页面 。 你可以做的不是你整个jQuery的事情:
并通过消息提供它
facesContext.addMessage(null, message);
也可以看看:
- 如何使用本机JavaScript在HTML DOM事件上调用JSF托管bean?
- 如何将JavaScript变量作为参数传递给JSF动作方法?
您需要了解需要调用在服务器中运行的java方法,而不能直接调用它。
在您的情况下,我建议使用AJAX或在页面加载时读取值并使用它(如果可行的话)
检查如何在Jquery中使用AJAX