我在jsf页面中有这一行
<h:dataTable value="#{customer.getCustomerList()}"
在我的豆子里我有
public List<Customer> getCustomerList(){
return customerBo.findAllCustomer();
}
我正在使用带有servlet 2.5的Eclipse Helios的JSF 2.0,当我验证我正在
时Expression must be a value expression but is a method expression
如何解决此问题?
答案 0 :(得分:13)
我有一个类似的问题,尽管我做得很好,就像PermGenError发布的那样。我有这个:
<h:commandButton action="#{bean.registry}"></h:commandButton>
我得到错误:表达式必须是方法表达式,但是是值表达式
在我的Bean中,有:
class Bean{
Registry registry = new Registry();
public Registry getRegistry() {
return registry;
}
}
此消息的原因是Eclipse无法以JSF方式识别这实际上是方法调用,并将此消息视为错误。这可以通过这种方式关闭:
窗口/首选项/ Web / JavaServer Faces工具/验证/类型分配问题/预期的方法表达
更改为警告或忽略
我希望这能帮助别人!
答案 1 :(得分:1)
查看:
<h:dataTable value="#{customer.customerList}"
value
的{{1}}属性需要值表达式,而不是方法表达式。您必须在h:dataTable
托管bean中创建一个名为customerList
的属性。
#{customer}