JSF 2 - 如何使用 JSF EL 从 web.xml 获取上下文参数值?
Posted
技术标签:
【中文标题】JSF 2 - 如何使用 JSF EL 从 web.xml 获取上下文参数值?【英文标题】:JSF 2 - How can I get a context-param value from web.xml using JSF EL? 【发布时间】:2011-09-25 06:38:12 【问题描述】:我想在 web.xml 文件中声明我的 JSF 2 webapp 使用的一些常量值,如下所示:
<web-app>
<context-param>
<param-name>myconstantkey</param-name>
<param-value>some string value</param-value>
</context-param>
</web-app>
从支持 bean 中获取这些值很容易:
FacesContext ctx = FacesContext.getCurrentInstance();
String myConstantValue =
ctx.getExternalContext().getInitParameter("myconstantkey");
如何使用 JSF EL 从 Facelets 页面内部实现相同的功能以获取值?
【问题讨论】:
【参考方案1】:Steve Taylor 的回答确实有效,但有一种更简单的方法是使用 JSF EL 预定义对象initParam
。
<h:outputText value="#initParam['myconstantkey']" />
最初这对我不起作用,因为我忘记在键名周围加上单引号并返回一个空字符串。此解决方案还应该适用于包含点字符的键值。
【讨论】:
【参考方案2】:#facesContext.externalContext.initParameterMap.myconstantkey
【讨论】:
【参考方案3】:通过 EL
$initParam['myconstantkey']
【讨论】:
以上是关于JSF 2 - 如何使用 JSF EL 从 web.xml 获取上下文参数值?的主要内容,如果未能解决你的问题,请参考以下文章
org.springframework.web.jsf.el.SpringBeanFacesELResolver 类必须扩展 javax.el.ELResolver 类型