面孔中的 EL 解析器-config.xml

EL resolver in faces-config.xml

在处理 Spring-JSF 集成时,我在 faces-config.xml 中看到了这个条目。

<application>
    <el-resolver>
        org.springframework.web.jsf.el.SpringBeanFacesELResolver
    </el-resolver>
</application>

谁能解释一下 <application><el-resolver> 到底是什么?

<application>代表JSF application。正是您可以获得的

Application application = FacesContext.getCurrentInstance().getApplication();

<el-resolver>代表EL resolver as used by JSF application。正是您可以获得的

ELResolver elResolver = application.getELResolver();

他们究竟做了什么可以在我上面链接的他们的 javadocs 中阅读。简而言之,Application 基本上代表应用程序范围的 JSF 配置,而 ELResolver 负责以 #{...}.

的形式评估 EL 表达式

SpringBeanFacesELResolver 的情况下,它修饰底层 EL 解析器以识别 Spring 托管 beans 以及基于 Spring 自己的应用程序上下文和配置文件。换句话说,您将能够通过 EL 在 JSF 页面中使用 Spring 托管 bean。

另请参阅:

  • Spring JSF integration: how to inject a Spring component/service in JSF managed bean?