Вопрос по java – Сервлеты Java - Хранение списка значений в web.xml (несколько значений параметров для одного имени параметра)

30

Я создаю сервлет, который должен загрузить информацию о конфигурации. Часть информации о конфигурации, которая мне нужна, - это список строк (в частности, список имен хостов и / или URL).

Я надеялся сохранить эту информацию в файле web.xml моего сервлета (поэтому мне не нужно писать собственный синтаксический анализатор) как context-param или init-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>

Мое первоначальное исследование показало, что это невозможно - что для любого имени параметра может быть только одно значение параметра (в контексте-параметра или в параметре-инициализации).

Я знаю, что мог бы просто использовать список с разделителями в пределах одного значения параметра, но действительно ли это мой единственный вариант, если я все еще хочу использовать web.xml? Должен ли я просто перестать ныть и написать свой собственный анализатор конфигурационных файлов?

Ваш Ответ

3   ответа
19

ее, и он отлично работает:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/spring-beans.xml
        /WEB-INF/security-config.xml    
    </param-value>
</context-param>
Error: User Rate Limit Exceeded greenlaw
Error: User Rate Limit Exceededtheir documentation: Set the config locations for this application context in init-param style, i.e. with distinct locations separated by commas, semicolons or whitespace.
13

просто используйте разделители (поскольку для этого нет других вариантов):

<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
39

Servlet spec says that you can have only one value for any context parameter, Таким образом, вы остаетесь только с разделенным списком.

<context-param>
  <param-name>validHosts</param-name>
  <param-value>example1..com,.....</param-value>
</context-param>
Как я и подозревал ... хорошо, я сделаю это, но это не значит, что мне это нравится! greenlaw

Похожие вопросы