在web.xml中访问welcome-file-list的值

时间:2016-07-25 09:34:33

标签: jsf servlets web.xml welcome-file

有没有办法访问welcome-file-list中的web.xml元素,而无需重新解析web.xml本身?

1 个答案:

答案 0 :(得分: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 utility class

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

另见: