我创建需要加载配置信息的servlet。 的我所需要的配置信息的一部分是字符串的列表(具体而言,主机名和/或URL的列表)。
我希望存放在我的servlet的web.xml文件中该信息(所以我没有写我自己的解析器)无论是作为的context-param或init-PARAM; 本质上由多PARAM值的单个PARAM名。
我想什么例子:
<context-param>
<param-name>validHosts</param-name>
<param-value>example1.com</param-value>
<param-value>example2.com</param-value>
<param-value>example3.com</param-value>
</context-param>
我最初的研究似乎表明这是不可能的 - 这只能有任何PARAM-名(的context-param或init-PARAM内)单PARAM值。
我知道我可以只使用一个单一的PARAM值内的分隔列表,但真正我唯一的选择,如果我还是想用的web.xml? 我是不是应该停止抱怨,写我自己的配置文件分析器?
Servlet规范说,你只能有一个对任何情况下的参数值 。 所以,你会留下只有分隔列表去。
<context-param>
<param-name>validHosts</param-name>
<param-value>example1.com,example2.com,.....</param-value>
</context-param>
把每个PARAM自成一行。 我最近做了以下工作得很好:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-beans.xml
/WEB-INF/security-config.xml
</param-value>
</context-param>
是的,就用分隔符(如适用于本没有其他选择):
<context-param>
<param-name>validHosts</param-name>
<param-value>example1.com,example2.com,example3.com</param-value>
</context-param>
then simply
String[] validHosts = param.split(","); // not really much to do
文章来源: Java Servlets - Storing a list of values in web.xml (multiple param-value's for single param-name)