example - mojarra jsfcljs
Redireccionamiento JSF a través de commandButton (1)
El <h:commandButton type="button">
no genera un botón de envío. Simplemente genera un botón "muerto" sin ningún efecto, destinado exclusivamente a ser usado para scripts onclick="..."
y similares. Esto es, en cierto modo, un remanente de la era oscura de JSF 1.0 / 1.1, cuando no era posible utilizar simplemente el HTML simple de vainilla en JSF para este tipo de cosas.
<f:ajax>
realiza el envío mediante los poderes de ajax a través de un clic generado por JSF. No le importa el type
de botón.
Esencialmente, eliminar el type="button"
y confiar en su type="submit"
predeterminado type="submit"
debería solucionar su problema.
<h:commandButton value="Enter" action="index?faces-redirect=true" />
Sin embargo, todo con todo, si este es el código real y realmente no tiene intención de invocar una acción de bean, entonces está yendo por completo en la dirección equivocada para implementar el requisito funcional de navegar a una página diferente con un botón. . Deberías estar usando <h:button>
lugar.
<h:button value="Enter" outcome="index" />
Ver también:
No puedo redirigir a otra página si el código es así:
<h:commandButton type="button" value="Enter" action="index?faces-redirect=true" >
Pero la redirección funciona si el código es:
<h:commandButton type="button" value="Enter" action="index?faces-redirect=true" >
<f:ajax />
</h:commandButton>
¿Alguien podría explicar esto? ¡Gracias!
-----------------------EDITAR------------------------
El código xhtml completo para su referencia:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h:form id="form">
<h:commandButton id="enterModelButton" type="button" value="Enter" action="index?faces-redirect=true" >
<f:ajax />
</h:commandButton>
</h:form>
</h:body>
</html>