面孔中的 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?
在处理 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
负责以 #{...}
.
在 SpringBeanFacesELResolver
的情况下,它修饰底层 EL 解析器以识别 Spring 托管 beans 以及基于 Spring 自己的应用程序上下文和配置文件。换句话说,您将能够通过 EL 在 JSF 页面中使用 Spring 托管 bean。
另请参阅:
- Spring JSF integration: how to inject a Spring component/service in JSF managed bean?