javax.servlet.ServletException:无法找到具有 [0] 个参数的方法 xyz - 值表达式与方法表达式

javax.servlet.ServletException: Unable to find method xyz with [0] parameters - Value expression vs method expression

所以我对jsf中值表达式和方法表达式的使用有点困惑。我对这两个词的理解是:

如有不妥请指正

现在我很困惑如何在 jsf 页面中使用这两者。

我的 bean 有一个像这样的方法:

@ManagedBean
@ViewScoped
public class myBean implements Serializable {

/*Some bean properties here*/ 

private Set<String> getFilterTerms() {

        /*Some logic here*/

        return filterTerms;
    }
}

我正在尝试呈现一个 jsf 页面 panelGroup,具体取决于上述函数返回的集合的大小。

 <h:panelGroup rendered="#{myBean.getFilterTerms().size() > 0}" layout="block" style="margin-top:60px">

  //Display some html elements here

 </h:panelGroup>

我收到以下代码错误。

javax.servlet.ServletException: Unable to find method [getFilterTerms] with [0] parameters.
  1. 是否可以像我在 渲染属性?
  2. 如果没有,我是否必须制作一个bean属性 filterterms 而不是在 getters 和 setters?
  3. 中实现代码

我的问题与 this one 非常相似,但在 link 中它是一个静态方法,而我的不是。

您已将方法 getFilterTerms 定义为私有。

您的 EL 在引用 属性

时不应使用 "get" 或方括号“()”

改用以下内容:

#{myBean.filterTerms.size() > 0}

注意小写 "f"