If you are working with JSF 2.0 there are different ways to interact with backend methods and passing params to action methods. A useful link for this topic can also seen here.
So for example if you have a JSF page with the following command link you use different ways to bound your backing bean:
<h:commandLink action="#{workflowController.editAction(workitem)}"
actionListener="#{workflowController.doEdit}">
<h:outputText value="click me" />
<f:setPropertyActionListener
target="#{workflowController.workitem}" value="#{workitem}" />
</h:commandLink>
The important thing here is the order which the jsf framework will trigger the differnt methods of the backingBean ‘worklfowController’
- The actionListener method will be called
- The setPropertyActionListener will trigger the setter method of the property ‘workitem’
- The action method with a custom param will be called
So in this case you backingBean can look something like this – note that there are two different ways to pass a param:
// first the actionListener method will be called
public void doEdit(ActionEvent event) throws Exception {
// do something...
.....
}
// next the setter for the property will be called
public void setWorkitem(Data aworkitem) {
// do something
}
// last the action method will be called
public String editAction(String action) {
// do something
return action;
}
