Reputation: 1292
I am calling a backing bean method with a parameter from my jsf
<p:commandLink value="createUserFromSearch" action="#{userBacking.fromUserSearch(searchUserBacking.userSearchWithOptions)}"/>
SearchUserBacking
public UserSearch getUserSearchWithOptions(){
//create and return UserSearch Object
}
UserBacking
public String fromUserSearch(UserSearch userSearch){
fillViewLabelsFromUserSearch(userSearch);
return "success";
}
Navigation Rule
<navigation-rule>
<display-name>RouteView</display-name>
<from-view-id>/*</from-view-id>
<navigation-case>
<from-action>#{userBacking.fromUserSearch}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/user/userView.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
Outcome
Ressource /user/success.xhtml not found
All navigation rules where I call methods without parameters are working. Why not this one?
Upvotes: 4
Views: 2643
Reputation: 1292
Because no one was able to answer me that question I solved it in two steps:
I am calling a setter method from the actionListener attribute and the navigation/logic method from action attribute like this:
<p:commandLink value="createUserFromSearch" action="#{userBacking.showFromUserSearch}" actionListener="#{userBacking.setUserSearch(searchUserBacking.userSearchWithOptions)}"/>
SearchUserBacking
public UserSearch getUserSearchWithOptions(){
//create and return UserSearch Object
}
UserBacking
public String showFromUserSearch(){
if(this.userSearch!=null){
fillViewLabelsFromUserSearch(userSearch);
return "success";
}else{
return "false";
}
}
public void setUserSearch(UserSearch userSearch){
this.userSearch=userSearch;
}
Navigation Rule
<navigation-rule>
<display-name>RouteView</display-name>
<from-view-id>/*</from-view-id>
<navigation-case>
<from-action>#{userBacking.showFromUserSearch}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/user/userView.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
Outcome
Ressource /user/success.xhtml not found
All navigation rules where I call methods without parameters are working. Why not this one?
Upvotes: 2