从 理论上讲 ,应该执行以下 *** 作。
<h:body> <f:ajax event="load" listener="#{bean.onload}" /></h:body>
与
public void onload(AjaxBehaviourEvent event) { // ...}
但是,由于某些原因不支持此功能。
以下工作有效,但从本质上讲这是一个hack。
<h:head> <title>JSF 2.0 onload hack</title> <script> window.onload = function() { document.getElementById('hidden:link').onclick(); } </script></h:head><h:body> <h:form id="hidden" > <h:commandlink id="link"> <f:ajax event="click" listener="#{bean.onload}" /> </h:commandlink> </h:form></h:body>
如果碰巧使用了PrimeFaces,则可以将其
<p:remoteCommand>with
autoRun设置为
true。
<h:body> <h:form> <p:remoteCommand name="onload" action="#{bean.onload}" autoRun="true" /> </h:form></h:body>
或者,如果您使用的是OmniFaces,则可以使用它
<o:commandscript>
<h:body> <h:form> <o:commandscript name="onload" action="#{bean.onload}" /> <h:outputscript target="body">onload()</h:outputscript> </h:form></h:body>
在
<h:outputscript target="body">呈现
<script>中的结束
<body>。即将面世的OmniFaces
2.2将通过新
autorun属性消除此需求。
<h:body> <h:form> <o:commandscript name="onload" action="#{bean.onload}" autorun="true" /> </h:form></h:body>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)