En teoría lo siguiente debería hacerlo.
<h:body>
<f:ajax event="load" listener="#{bean.onload}" />
</h:body>
con
public void onload(AjaxBehaviourEvent event) {
// ...
}
Sin embargo, esto no es apoyado por alguna razón. Alguna vez he publicado un issue report sobre eso.
Lo siguiente funciona, pero en esencia es un truco.
<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" style="display:none">
<h:commandLink id="link">
<f:ajax event="click" listener="#{bean.onload}" />
</h:commandLink>
</h:form>
</h:body>
Si usted usa PrimeFaces, a continuación, puede utilizar su <p:remoteCommand>
con autoRun
set to true
.
<h:body>
<h:form>
<p:remoteCommand name="onload" action="#{bean.onload}" autoRun="true" />
</h:form>
</h:body>
O si está usando OmniFaces, a continuación, puede utilizar su <o:commandScript>
<h:body>
<h:form>
<o:commandScript name="onload" action="#{bean.onload}" />
<h:outputScript target="body">onload()</h:outputScript>
</h:form>
</h:body>
El <h:outputScript target="body">
hace que la <script>
en el extremo de la <body>
. El próximo OmniFaces 2.2 eliminará esta necesidad por new autorun
attribute.
<h:body>
<h:form>
<o:commandScript name="onload" action="#{bean.onload}" autorun="true" />
</h:form>
</h:body>
teoría debería funcionar. no funciona. Pero el botón oculto funciona como hechizo –
Lo primordial hizo el truco, incluso para redirigir (simplemente devuelva la página que desea del método de acción) – ACV
@BalusC No puedo abrir el hipervínculo de informe de incidencias. ¿Ya se resolvió el problema? – Metalhead