zoukankan      html  css  js  c++  java
  • 4 ways to pass parameter from JSF page to backing bean

    As i know,there are 4 ways to pass a parameter value from JSF page to backing bean :

    1. Method expression (JSF 2.0)
    2. f:param
    3. f:attribute
    4. f:setPropertyActionListener

    Let see example one by one :

    1. Method expression

    Since 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"
        }
     
    }

    2. f:param

    Pass parameter value via f:param tag and get it back via request parameter in backing bean.

    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");
              //...
     
        }
     
    }

    3. f:atribute

    Pass parameter value via f:atribute tag and get it back via action listener in backing bean.

    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:setPropertyActionListener

    Pass parameter value via f:setPropertyActionListener tag, it will set the value directly into your backing bean property.

    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"
        }    
     
    }
  • 相关阅读:
    Manage by Xcode
    CrashLog查看
    关于NSDateFormatter的格式dd是月天,DD是年天
    【转】 XCode的一些调试技巧
    应用程序互相跳转
    【转】如何将TapkuLibrary框架添加到Xcode4工程项目中
    NSString initWithBytes: 有最大值限制
    在一个workspace中的 各个工程 最好设置一致
    从桌面应用自动化测试看移动应用自动化测试
    基于Android平台应用程序的关键字驱动自动化测试 – 理论、工具和实践
  • 原文地址:https://www.cnblogs.com/sos-blue/p/3273068.html
Copyright © 2011-2022 走看看