假设有一个bean,
class bean{
  private String bindingMethod;
  public String getBindingMethod(){
      return bindingMethod;
  }  public void setBindingMethod(String bindingMethod){
    this.bindingMethod = bindingMethod;
  }
}
..
bean.setBindingMethod("#{business.do}")
..
xhtml
<h:commandLink value="#{bean.name}" action="#{bean.bindingMethod}"/>问题是
bindingMethod是动态的,怎样使action的表达式可以直接用bindingMethod中的表达式"#{business.do}"来代替?

解决方案 »

  1.   

    可以这么做 只是我的想法可以用jstl 或者jsp 在页面来一个if else语句。
    <c:test>
    </c:test>
    <%if(){%>
      <h:commandLink value="#{bean.name}" action="#{bean.bindingMethod1}"/>
    <%}else{%>
      <h:commandLink value="#{bean.name}" action="#{bean.bindingMethod2}"/>
    <%}%>或者
      <h:commandLink value="#{bean.name}" action="#{bean.bindingMethod1}" rendered="#{bean.ifRendered}"/>  <h:commandLink value="#{bean.name}" action="#{bean.bindingMethod2}" rendered="#{not bean.ifRendered}"/>