【发布时间】:2015-01-02 13:59:32
【问题描述】:
考虑两个 web.xml 文件: 1.
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>app</display-name>
<servlet>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<servlet-name>dispatcher</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
2.
<web-app>
<display-name>app</display-name>
<servlet>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<servlet-name>dispatcher</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
它们之间的区别在于web-app 标签包含第一个标签中的属性,而第二个标签不包含。问题是如果我们应用第二个web.xml,我们将无法使用像
${attrName}
在我们的jsp-pages 中。它们不会被相应的值替换,在Controller 的情况下添加到model 中的Spring MVC。
我想,我们指定schemaLocation 属性的唯一目的是验证我们的xml-文件(以获取XSD-schema)。这些属性实际上是如何工作的?
【问题讨论】: