当方法是静态的时,EL 抛出 PropertyNotFoundException

EL throws PropertyNotFoundException when method is static

给定以下 JSF 代码:
<h:outputText value="#{bean.foo}" />
以及我的 bean 中的正确方法:
public String getFoo(){ return "foo"; }
一切都很好。但是当我将 bean 的方法切换为静态时
public static String getFoo(){ return "foo"; }
它不再起作用,因为 EL 抛出异常:

javax.el.PropertyNotFoundException: The class 'bean' does not have the property 'foo'.

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

通过将 foo 设为静态,它不再符合此 class 的 property 的定义。您仍然可以直接调用 getFoo() ,但是当按照您更改它的方式构造它时,它不会为您自动装配它