在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