Hola, A ver si pueden ayudarme con este problema que les cuento. Tengo un formulario JSF con un botón p:commandButton (primefaces), así: <p:commandButton oncomplete="fresp(xhr, status, args);" action="#{clienteSesion.doLogin}" value="Entrar"/> Se procesa el contenido del formulario en el método doLogin del managed bean y manda una respuesta a la función fresp, para que redireccione a otra página o bien, para que se muestre un mensaje con un enlace a otra página JSF: if (login){ // Aquí código RequestContext.getCurrentInstance().addCallbackParam("login", true); } else{ // Aquí código RequestContext.getCurrentInstance().addCallbackParam("login", false); } No sé si conoceis lo anterior, aunque no es muy relevante lo bueno viene ahora. En la función tengo dos problemas: 1. hacer la redirección a página JSF, sé hacerlo a página HTML pero no a JSF. 2. meter el enlace dentro de la página. He probado utilizando DOM, y he conseguido meter un enlace html, pero necesito meter un enlace JSF (<h:commandLink>). Este es el código que he intentado y no funciona: function fresp(xhr, status, args){ if (args.login){ window.document.location=("ventas.xhtml"); //sirve como enlace a html pero no xhtml } else{ var comLink = document.createElement("h:commandLink"); comLink.setAttribute("action", "registrar.xhtml"); comLink.setAttribute("value", "Regístrese");
var div_error = document.getElementById("error"); var txt_error = document.createTextNode("Datos de acceso incorrectos. "); div_error.appendChild(txt_error); div_error.appendChild(comLink); } } Con este código el enlace no aparece en la página, aunque sí el texto que lo acompaña. Un saludo
Hola,
A ver si pueden ayudarme con este problema que les cuento. Tengo un formulario JSF con un botón p:commandButton (primefaces), así:
<p:commandButton oncomplete="fresp(xhr, status, args);"
action="#{clienteSesion.doLogin}" value="Entrar"/>
Se procesa el contenido del formulario en el método doLogin del managed bean y manda una respuesta a la función fresp, para que redireccione a otra página o bien, para que se muestre un mensaje con un enlace a otra página JSF:
if (login){
// Aquí código
RequestContext.getCurrentInstance().addCallbackParam("login", true);
}
else{
// Aquí código
RequestContext.getCurrentInstance().addCallbackParam("login", false);
}
No sé si conoceis lo anterior, aunque no es muy relevante lo bueno viene ahora. En la función tengo dos problemas:
1. hacer la redirección a página JSF, sé hacerlo a página HTML pero no a JSF.
2. meter el enlace dentro de la página. He probado utilizando DOM, y he conseguido meter un enlace html, pero necesito meter un enlace JSF (<h:commandLink>). Este es el código que he intentado y no funciona:
function fresp(xhr, status, args){
if (args.login){
window.document.location=("ventas.xhtml");
//sirve como enlace a html pero no xhtml
}
else{
var comLink = document.createElement("h:commandLink");
comLink.setAttribute("action", "registrar.xhtml");
comLink.setAttribute("value", "Regístrese");
var div_error = document.getElementById("error");
var txt_error = document.createTextNode("Datos de acceso incorrectos. ");
div_error.appendChild(txt_error);
div_error.appendChild(comLink);
}
}
Con este código el enlace no aparece en la página, aunque sí el texto que lo acompaña.
Un saludo