JSF 2 - 如何使用 JSF EL 从 web.xml 获取上下文参数值?

2022-09-01 06:07:00

我想在 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}

推荐