在 Web 开发中,有必要根据客户端上发生的特定事件来执行服务器端操作-边。这可以在 JavaServer Faces (JSF) 中通过采用各种方法来实现。其中一种方法是在 HTML DOM 加载事件期间使用 Ajax 调用 JSF 托管 bean 操作方法。
在 JSF 2.3 及更高版本中,
<h:form> <h:commandScript name="commandName" action="#{bean.action}" render=":results" /> </h:form> <h:panelGroup>
可以使用纯 JavaScript 调用此脚本:
commandName();
设置 autorun="true" 在 DOM 加载期间触发它。
如果使用 PrimeFaces,请考虑使用其
<h:form> <p:remoteCommand name="commandName" action="#{bean.action}" update=":results" /> </h:form> <h:panelGroup>
调用类似于
commandName();
PrimeFaces 使用 jQuery 进行 AJAX 调用,而不是 JSF 原生 jsf.ajax。 request().
对于 2.3 之前的 JSF 版本,OmniFaces 提供
<o:form> <o:commandScript name="commandName" action="#{bean.action}" render=":results" /> </o:form>
相同只需将 h:commandScript 替换为o:commandScript。
另一种方法涉及利用带有
<h:form>
调用:
document.getElementById("form:button").onclick();
作为作为最后的手段,我们可以开发一个扩展 UICommand 并利用 jsf.ajax.request() 的自定义 UIComponent。
总之,这些方法使开发人员能够使用本机 JavaScript 在 HTML DOM 事件上调用 JSF 托管 bean。方法的选择取决于 JSF 版本、库使用情况和项目限制等因素。
以上是如何使用 JavaScript 在 HTML DOM 事件上调用 JSF 托管 Bean?的详细内容。更多信息请关注PHP中文网其他相关文章!