日期:2014-05-18  浏览次数:20839 次

JSF的EL表达式可以嵌套吗?action="#{menu.navigation}"
假设有一个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} "来代替?



------解决方案--------------------
可以这么做 只是我的想法

可以用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} "/>