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; }