tengo este código de trabajo en mi aplicación web:Haciendo t: trabajo commandButton como h: Botón
<h:button value="Edit user..." outcome="/public/user" >
<f:param name="userName" value="#{authBean.authUser}"/>
</h:button>
Lo que hace:
- Esto hace que el botón de enviar un GET
- Pasa el parámetro especificado en la URL, por lo que es bookmarkable.
lo que necesito:
- que debería funcionar como h: botón de arriba (enviar GET)
- el botón debe ser similar a otros botones PrimeFaces (por ejemplo, decorado con una imagen ... etc.)
Esto es lo más cerca que pude conseguir:
<p:commandButton value="Edit user..." action="/public/user?faces-redirect=true" ajax="false" immediate="true" >
<f:param name="userName" value="#{authBean.authUser}"/>
</p:commandButton>
Se envía un mensaje que se le redirecciona automáticamente a la nueva dirección URL con un GET. Sin embargo, el parámetro se pierde en el proceso.
Otra idea:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml">
<f:param name="userName" value="#{authBean.authUser}"/>
</p:linkButton>
La petición GET se interrumpe (??? acuerdo con Firebug) y la página actual se encuentra de nuevo.
¿Cuál es la forma correcta de hacerlo?
ACTUALIZACIÓN: esto funciona (en una página en blanco, sin t: dataTable):
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername">
pero esto no es así:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&secondParam=otherValue">
los últimos resultados en:
500: javax.servlet.ServletException: Error al analizar /sample0.xhtml: error Trazado [línea: 14] El refere nce a entidad "secondParam" debe terminar con ';' delimitador.
Update2: la & debe escaparon:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&secondParam=otherValue">
y se ve bien ... pero sigo teniendo el GET y POST abortado resienten:
alt text http://img64.imageshack.us/img64/1017/primefaceslinkbutton.jpg
Esta es la página completa en blanco que he estado intentando con:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head />
<h:body>
<h:form>
<p:linkButton value="Click me" href="http://stackoverflow.com" />
</h:form>
</h:body>
</html>
Primefaces 2.1 lanzamiento.
Yo probé t: linkButton, pero no funciona. Firebug dice que la solicitud GET se cancela, y la página actual se POST. – egbokul
Lo siento, no hice una copia/pegado completo. Estoy usando el atributo "href", "url" ni siquiera es aceptado por Netbeans. Ahora comprobaré si hay otros javascript ... – egbokul
En una página vacía p: linkButton funciona ... más o menos. f: param no funciona. Si especifico el parámetro en la URL directamente (por ejemplo: ".../user.xhtml? UserName = myusername") funciona. Cuando especifico un parámetro más, Glassfish dice 500: javax.servlet.ServletException: Error Parsing /sample0.xhtml: Error Traced [line: 14] La referencia a la entidad "relVerMin" debe terminar con ';' delimitador. (relVerMin fue mi segundo parámetro, como: ".../delrel.xhtml? relVerMaj = 1 & relVerMin = 0") – egbokul