有没有办法访问welcome-file-list
中的web.xml
元素,而无需重新解析web.xml
本身?
答案 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();