I have a a4j:commandButton which is supposed to redirect me to an appropriate “Edit” page based on an Id, which I wanted to pass as a parameter, something like this:
<h:commandButton action="/details.jsf?faces-redirect=true" value="details">
<f:attribute name="id" value="#{bean.id}" />
</h:commandButton>
The problem is, it doesn’t work. I also tried replacing f:attribute with “f:param name=”id” value=”#{bean.id}” “, but it also failed. The only thing I got to work is an outputLink:
<h:outputLink value="/details.jsf">
link
<f:param name="id" value="#{bean.id}" />
</h:outputLink>
But I’m not really happy with a link, so is there a way to make the commandButton work?
Oh and I also have a bean which is supposed to get that “id” after the redirect:
@PostConstruct
public void init(){
id= resolve("id");
}
Have a look at this article about communication in JSF, by BalusC
f:paramonly works withh:commandLinkandh:outputLink.You can use an input hidden:
And then in your faces-config, I guess is request scoped. If you use the annotations of JSF2, just translate this to the proper annotations.
You need obviously to have getters and setters for that field in the backing bean.
or try to “paint” the link as a button through CSS.