Es gibt 4 Möglichkeiten, um einen Parameterwert von JSF Seite zu anderen Seite JSF weitergeben müssen:
1- Method expression (JSF 2.0)
2- f:param
3- f:attribute
4- f:setPropertyActionListener
1. Methode Ausdruck
Da JSF 2.0, Sie erlauben Parameterwert in dem Verfahren, wie dieser Ausdruck # {bean.method (param)} übergeben.
JSF Seite
<h:commandButton action="#{user.editAction(delete)}" />
ManagedBean
@ManagedBean(name="user")
@SessionScoped
public class UserBean{
public String editAction(String id) {
//id = "delete"
}
}
2- f: param
Übergeben Sie den Parameterwert über den Parameter f: param und rufen Sie ihn über den Anforderungsparameter im Backing-Bean ab.
JSF Seite
<h:commandButton action="#{user.editAction}">
<f:param name="action" value="delete" />
</h:commandButton>
ManagedBean
@ManagedBean(name="user")
@SessionScoped
public class UserBean{
public String editAction() {
Map<String,String> params =
FacesContext.getExternalContext().getRequestParameterMap();
String action = params.get("action");
//...
}
}
3. f: atribute
Übergeben Sie den Parameterwert über das f: atribute -Tag und rufen Sie es über den Aktionslistener im Backing-Bean ab.
JSF Seite
<h:commandButton action="#{user.editAction}" actionListener="#{user.attrListener}">
<f:attribute name="action" value="delete" />
</h:commandButton>
ManagedBean
@ManagedBean(name="user")
@SessionScoped
public class UserBean{
String action;
//action listener event
public void attrListener(ActionEvent event){
action = (String)event.getComponent().getAttributes().get("action");
}
public String editAction() {
//...
}
}
4. f: setPropertyActionListener
Übergeben Sie den Parameterwert über das f: setPropertyActionListener-Tag. Dadurch wird der Wert direkt in Ihre Backing-Bean-Eigenschaft gesetzt.
JSF Seite
<h:commandButton action="#{user.editAction}" >
<f:setPropertyActionListener target="#{user.action}" value="delete" />
</h:commandButton>
ManagedBean
@ManagedBean(name="user")
@SessionScoped
public class UserBean{
public String action;
public void setAction(String action) {
this.action = action;
}
public String editAction() {
//now action property contains "delete"
}
}
den Wert einer Eigenschaft eines Ihrer Manager oder cdi Bohnen ein. –