使用 jquery ajax 调用 jsf 托管 Bean 方法(AjaxBehaviorEvent 侦听器处理程序)



我想知道是否有办法通过使用jquery ajax服务器请求直接触发JSF托管的bean方法(使用AjaxBehaviorEvent类型参数:使用f:ajax时触发的相同)。顺便说一下,我是一个jsf开发人员,我没有找到一个关于使用jquery ajax和Java EE作为服务器端框架的例子,我找到的所有例子都是php。所以我希望得到一个关于这样做的完整例子。我认为另一种解决方法可能是在客户端使用 jquery 提交命令链接并通过该调用传递参数,但我更喜欢前一种解决方案,我希望它能工作。

非常感谢您的帮助!

你来了:

<script type="text/javascript">
    doAwesomeness();
</script>

在您的页面中:

<a4j:jsFunction name="doAwesomeness" action="#{awesomeBean.awesomeMethod}"/>

祝你好运!

jQuery ajax

请求和JSF ajax请求使用不同的js库,我认为尝试将它们混合太多是没有意义的......

如果你想从jQuery触发JSF管理的Bean操作,你最好使用隐藏的h:commandButton来达到这个目的......

JSF:

<h:commandButton id="someId" action="#{someBean.someMethod}" style="display:none">
    <f:ajax render="someId" execute="someId"/>
</h:commandButton>

如果你想传递更多的隐藏参数,你可以在隐藏的h:commandButton execute属性中添加一些更多的隐藏的JSF组件ID,这样它们相应的属性将在服务器端更新......

.js

$("#someId").click();

另一方面,如果你想在与jQuery调用相对应的servlet中使用受管Bean数据,你总是可以访问JSF受管数据,如下所示: JSF - 按名称获取受管Bean

与 islandguy 指出的相同,如果您使用 Primefaces,您将使用 <p:remoteCommand/> 命令,如下所示:

<script type="text/javascript">
      doAwesomeness();
</script>

跟:

 <p:remoteCommand name="doAwesomeness" 
          actionListener="#{awesomeBean.awesomeMethod}"
          oncomplete="jsToExecuteOnAjaxSuccess()" />

希望这有帮助..

相关内容

  • 没有找到相关文章

最新更新