詳細:
1. Method expressionSince JSF 2.0, you are allow to pass parameter value in the method expression like this #{bean.method(param)}. JSF page… <h:commandButton action="#{user.editAction(delete)}" />
Backing bean… @ManagedBean(name="user") @SessionScoped public class UserBean{ public String editAction(String id) { //id = "delete" } } Pass parameter value via JSF page… <h:commandButton action="#{user.editAction}"> <f:param name="action" value="delete" /> </h:commandButton> Backing bean… @ManagedBean(name="user") @SessionScoped public class UserBean{ public String editAction() { Map<String,String> params = FacesContext.getExternalContext().getRequestParameterMap(); String action = params.get("action"); //... } } Pass parameter value via JSF page… <h:commandButton action="#{user.editAction}" actionListener="#{user.attrListener}"> <f:attribute name="action" value="delete" /> </h:commandButton Backing bean… @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:setPropertyActionListenerPass parameter value via JSF page… <h:commandButton action="#{user.editAction}" > <f:setPropertyActionListener target="#{user.action}" value="delete" /> </h:commandButton> Backing bean… @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" } } By Zhang Wenxu |
投稿 >