EL抛出PropertyNotFoundException时方法是静态的

问题描述:

考虑下面的JSF代码:
<h:outputText value="#{bean.foo}" />
和适当的方法在我的豆:
public String getFoo(){ return "foo"; }
一切工作好了。但是,当我转我的bean的方法静态
public static String getFoo(){ return "foo"; }
它不工作了,因为EL抛出一个异常:
EL抛出PropertyNotFoundException时方法是静态的

javax.el.PropertyNotFoundException:类“豆”不具有财产“富”。

为什么该方法不能是静态的?

+2

你可以尝试'#{Bean.foo}'吗? –

+0

我更加困惑,因为它在CamelCase中拼写bean时有用。为什么呢? – Gawron

通过使foo为静态,它不再适合此类的property的定义。你仍然可以直接调用getFoo(),但是当你改变它的方式时,它不会为你自动调用它。