【发布时间】:2017-05-31 08:33:01
【问题描述】:
所以我对jsf中值表达式和方法表达式的使用有点困惑。我对这两个术语的理解是:
- 如果它是具有 getter 和 setter 函数的 bean 的属性,则称为值表达式。
- 如果它是类的常规方法,而不是属性(因此没有 getter 或 setter),则称为方法表达式。
如有错误请指正。
现在我很困惑如何在 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 而不是在 getter 和 setter 中实现代码?
我的问题与this one 非常相似,但在链接中它是一个静态方法,而我的不是。
【问题讨论】: