Доступ к значению welcome-file-list в web.xml

Есть ли способ получить доступ к welcome-file-list элемент в web.xml без необходимости повторного анализа web.xml сам?

1 ответ

Решение

Нет. Для этого нет публичного JSF или Servlet API.

Лучшее, что вы можете сделать, это взять JAXP+XPath.

InputStream input = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/WEB-INF/web.xml");
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(input);
XPathExpression xpath = XPathFactory.newInstance().newXPath().compile("web-app/welcome-file-list/welcome-file");
NodeList nodes = (NodeList) xpath.evaluate(document, XPathConstants.NODESET);

for (int i = 0; i < nodes.getLength(); i++) {
    String welcomeFile = nodes.item(i).getFirstChild().getNodeValue().trim();
    // ...
}

Если вы используете библиотеку утилит JSF OmniFaces, вы можете использовать ее WebXml служебный класс.

List<String> welcomeFiles = WebXml.INSTANCE.getWelcomeFiles();

Смотрите также:

Другие вопросы по тегам