今天意外的发现web.xml中 servlet-name 的设置有着细节的地方,以往设置springmvc.xml(springmvc可换成其他名字只要是springmvc配置文件就好)总是默认保存在/web-inf 下,今天换成在src目录下就报错了,往复尝试几次后有以下发现:
(1)当你的springmvc没有放在/web-inf 目录时:
如图:我放在src下
此时:servlet-name的名字(这里是springmvc)可以和springmvc配置文件的名字不一样(spring-mvc),另外springmvc配置文件的名字也不用写成 名字-servlet ,就像(spring-mvc-servlet.xml)
但是,此时需要在web.xml文件中配置路径信息:
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
运行没问题:
如果是在默认路径下,就是在 web-inf路径下,如图:
当我运行时明显报错了:
将名字spring-mvc改成springmvc-servlet后,运行,则成功了:
即在默认路径下,springmvc的配置文件的名字格式要类似 名字-servlet 这样的,而且,名字跟web.xml中的servlet-name的取名要一致。另外,因为是在默认路径下,所以web.xml文件中就无需配置路径信息了。