I have this working code in my webapp:
<h:button value="Edit user..." outcome="/public/user" > <f:param name="userName" value="#{authBean.authUser}"/> </h:button> What it does:
- It makes the button send a GET
- It passes the specified parameter in the URL, making it bookmarkable.
What I need:
- It should work like h:button above (send GET)
- the button should look like other Primefaces buttons (eg. decorated with an image... etc).
This is the closest I could get:
<p:commandButton value="Edit user..." action="/public/user?faces-redirect=true" ajax="false" immediate="true" > <f:param name="userName" value="#{authBean.authUser}"/> </p:commandButton> It sends a POST that gets redirected to the new URL with a GET. However the parameter is lost in the process.
Another idea:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml"> <f:param name="userName" value="#{authBean.authUser}"/> </p:linkButton> The GET request is aborted (??? according to Firebug) and the current page is POSTed again.
What is the proper way of doing this?
UPDATE: this works (on an empty page, with no p:dataTable):
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername"> but this does not:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&secondParam=otherValue"> the latter results in:
500: javax.servlet.ServletException: Error Parsing /sample0.xhtml: Error Traced[line: 14] The reference to entity "secondParam" must end with the ';' delimiter.
UPDATE2: the & should be escaped:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&secondParam=otherValue"> and it looks good... but I still get the GET aborted and POST resent:
alt text http://img64.imageshack.us/img64/1017/primefaceslinkbutton.jpg
This is the full empty page I've been trying it with:
<?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 release.