带表达式的JSF 2.0是一个方法错误

时间:2012-11-24 09:25:58

标签: java eclipse jsf-2

我在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

如何解决此问题?

2 个答案:

答案 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}

Refer to the h:dataTable tag documentation