名称以“ is”开头的EL布尔静态函数

时间:2018-06-20 17:57:32

标签: java expression cdi jsf-2.2

我正在尝试访问ManagedBean内部的函数,但观察到奇怪的行为。

我的ManagedBean:

@Named
@RequestScoped
public class MyMB implements Serializable {

...

    public static boolean test() {
        // Works without any problem
        return true;
   }

    public static boolean isTest() {
        // Not working, .xhtml can't find it
        return true;
    }

    public static boolean isTest(boolean test) {
        // Works without any problem
        return true;
    }
}

在我的.xhtml文件中:

<!-- Works without any problem -->
<p:outputPanel rendered="#{myMB.test}">

<!-- Not working, .xhtml can't find it -->
<p:outputPanel rendered="#{myMB.isTest}">

<!-- Works without any problem -->
<p:outputPanel rendered="#{myMB.isTest(true)}">

观察到的结果:当我使用名称以“ is”开头的布尔静态函数时,只有当我放置参数时,我的xhtml才能看到此函数。

我的问题:EL,静态和/或布尔函数是否存在规则,其中以“ is”开头的函数的名称需要参数接收的变量?我做错了什么?

1 个答案:

答案 0 :(得分:0)

您应该使用实例变量来绑定JSF表单,但是对于您的情况,我建议您使用Primefaces的ImportConstants。

在您的情况下: '' 引用实例变量