tomcat - 如何读取值在我的 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
解决方案
虽然知道为什么不能将 bean 添加到项目中仍然很有趣,但是String
从 Apache Tomcat 访问类型化参数的一个机会context.xml
是getInitParam(String)
来自 ExternalContext 的方法:
<Environment .../>
将您的元素重写为<Parameter .../>
:
<Parameter
name="myName"
value="HelloWorldApp" />
在你的xhtml
文章中:
这是一个#{facesContext.externalContext.getInitParameter('myName')}!
另一种可能性是创建自定义 EL-Function。但是,如果您不能创建 bean,那么这也可能不是您的选择。
推荐阅读
- javascript - Why configurable:false allows to change writable flag but does'nt for enumerable
- html - Adding Dynamic Input Fields With VueJs
- android - 调用系统服务(例如电话服务)时的 ANR
- docker - 使用 docker-compose 在 dataproc 中运行 Spark 作业
- python - 未捕获(承诺中)错误:GraphQL 错误:不可散列类型:'dict'
- c# - ItemsControl with multiple DataTemplates and a generic header for each item
- javascript - Dynamically disable MDL textbox via JavaScript
- spring-boot - Form management with Springboot - autofill a form when user select a typeahead
- html - 如何使用 MDL 在 Header 上制作响应式文本字段?
- mqtt - 我可以限制 mosquitto 以便没有客户端每秒可以发布超过 N 条消息吗?