编程语言
首页 > 编程语言> > java-使用f:event postAddToView在PageLoad之后调用JSF ManageBean

java-使用f:event postAddToView在PageLoad之后调用JSF ManageBean

作者:互联网

我正在使用JSF 2.0编写应用程序.

对于其中一个页面,页面的一部分需要花费很长时间才能显示.

为了改善用户体验,我正在考虑先加载页面,然后在第一次加载后成功加载页面后自动对JSF manage bean对象执行Ajax调用.

我正在考虑将f:event与postAddView类型一起使用.

<h:outputText id="dummyId">
    <f:event type="postAddToView" listener="#{mngBean.doSomething}" />
</h:outputText>

但是,在首次显示该页面之前,似乎f:event postAddToView仍在处理中.

我探索的其他选项是创建一个隐藏按钮并获取javascript触发它.它有效,但是我只是想知道是否有一个不错的JSF组件/事件可以做到这一点,而不是使用Java脚本.

谢谢你的帮助.

<h:commandButton id="dmyButton" 

value =“#{mngBean.getSomething}”
 actionListener =“#{mngBean.doSomething}”
 style =“ display:none”
 type =“ submit”>

Java脚本

<script language="JavaScript">
 $(document).ready(function() {
  if (document.getElementById('form:dmyButton').value == 'true') {
   document.getElementById('form:dmyButton').click();
  }

 });
</script>

谢谢您的所有帮助

解决方法:

我认为PreRenderViewEvent是您想要的.

http://javaserverfaces.java.net/nonav/docs/2.0/javadocs/javax/faces/event/PreRenderViewEvent.html

尽管文档未显示,但preRenderViewEvent确实可以与f:event一起使用.我将立即修复文档.

标签:http,jsf-2,javascript,java
来源: https://codeday.me/bug/20191209/2097163.html