javax.servlet.ServletException:无法找到具有 [0] 个参数的方法 xyz - 值表达式与方法表达式
javax.servlet.ServletException: Unable to find method xyz with [0] parameters - Value expression vs method expression
所以我对jsf中值表达式和方法表达式的使用有点困惑。我对这两个词的理解是:
- 如果它是具有 getter 和 setter 函数的 bean 的 属性,它将被称为值表达式。
- 如果它是 class 的常规方法,而不是 属性(因此没有 getter 或 setters)而不是它称为方法表达式。
如有不妥请指正
现在我很困惑如何在 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.
- 是否可以像我在
渲染属性?
- 如果没有,我是否必须制作一个bean属性
filterterms 而不是在 getters 和 setters?
中实现代码
我的问题与 this one 非常相似,但在 link 中它是一个静态方法,而我的不是。
您已将方法 getFilterTerms
定义为私有。
您的 EL 在引用 属性
时不应使用 "get" 或方括号“()”
改用以下内容:
#{myBean.filterTerms.size() > 0}
注意小写 "f"
所以我对jsf中值表达式和方法表达式的使用有点困惑。我对这两个词的理解是:
- 如果它是具有 getter 和 setter 函数的 bean 的 属性,它将被称为值表达式。
- 如果它是 class 的常规方法,而不是 属性(因此没有 getter 或 setters)而不是它称为方法表达式。
如有不妥请指正
现在我很困惑如何在 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.
- 是否可以像我在 渲染属性?
- 如果没有,我是否必须制作一个bean属性 filterterms 而不是在 getters 和 setters? 中实现代码
我的问题与 this one 非常相似,但在 link 中它是一个静态方法,而我的不是。
您已将方法 getFilterTerms
定义为私有。
您的 EL 在引用 属性
时不应使用 "get" 或方括号“()”改用以下内容:
#{myBean.filterTerms.size() > 0}
注意小写 "f"