通过读取源代码,发现struts2是通过Xwork中的XmlConfigurationProvider来读取配置的.其中发现在xwork2.1版本中,是支持*号的通配读取.但在xwork2.0中是不支持这样的写法.
所以在String2.1的版本中是可以使用<include file="resource/struts-config/*.xml"/>这样的配置.在Struts2.0中是不支持这样的配置
xwork2.1
xwork2.0
所以在String2.1的版本中是可以使用<include file="resource/struts-config/*.xml"/>这样的配置.在Struts2.0中是不支持这样的配置
xwork2.1
- if ("include".equals(nodeName)) {
- String includeFileName = child.getAttribute("file");
- if (includeFileName.indexOf('*') != -1) {
- // handleWildCardIncludes(includeFileName, docs, child);
- ClassPathFinder wildcardFinder = new ClassPathFinder();
- wildcardFinder.setPattern(includeFileName);
- Vector<String> wildcardMatches = wildcardFinder.findMatches();
- for (String match : wildcardMatches) {
- finalDocs.addAll(loadConfigurationFiles(match, child));
- }
- } else {
- finalDocs.addAll(loadConfigurationFiles(includeFileName, child));
- }
- }
xwork2.0
- Element rootElement = doc.getDocumentElement();
- NodeList children = rootElement.getChildNodes();
- int childSize = children.getLength();
- for (int i = 0; i < childSize; i++) {
- Node childNode = children.item(i);
- if (childNode instanceof Element) {
- Element child = (Element) childNode;
- final String nodeName = child.getNodeName();
- if (nodeName.equals("include")) {
- String includeFileName = child.getAttribute("file");
- docs.addAll(loadConfigurationFiles(includeFileName, child));
- }
- }
- }
- docs.add(doc);
- loadedFileUrls.add(url.toString());