首页 > 解决方案 > 如何读取值在我的 META-INF/context.xml 中定义的条目

问题描述

我有 META-INF/context.xml 文件,如下所示

 <?xml version='1.0' encoding='utf-8'?>
    <Context displayName="Game Application Dev">
     <Environment 
        name="myName" 
        value="HelloWorldApp" 
        type="java.lang.String" 
        description="This is my envName"/>
    </Context>

有可能在不使用任何 bean 的情况下读取我的.xhtml文件中的这个myName条目(它执行显式 jndi 查找)。我知道这可以通过 jndi 查找来完成,但我的要求是在不使用任何 bean 的情况下实现相同的目标。

编辑 1:我的目标服务器:Apache Tomcat

标签: tomcatjsf

解决方案


虽然知道为什么不能将 bean 添加到项目中仍然很有趣,但是String从 Apache Tomcat 访问类型化参数的一个机会context.xmlgetInitParam(String)来自 ExternalContext 的方法:

<Environment .../>将您的元素重写为<Parameter .../>

<Parameter
    name="myName" 
    value="HelloWorldApp" />

在你的xhtml文章中:

这是一个#{facesContext.externalContext.getInitParameter('myName')}!


另一种可能性是创建自定义 EL-Function。但是,如果您不能创建 bean,那么这也可能不是您的选择。


推荐阅读