按照上图设置之后,访问的是
.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\hotel.app.user\upload里面的资源
我的意思是有没有办法设置spring mvc的静态资源访问,使得可以访问项目根路径下的资源
要通过@Controller跳转吗?
如果静态资源的没法统一放在一个目录或固定几个目录下的话,我一般是在web.xml中通过后最配置了,如下
<!-- 激活Tomcat的defaultServlet来处理静态文件 -->
<!-- 要写在DispatcherServlet的前面, 让defaultServlet先拦截 -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
servletName
/
强调一下/使用的是/,而不是/*,如果使用/*,那么请求时可以通过DispatcherServlet转发到相应的Action或者Controller中的,但是返回的内容,如返回的jsp还会再次被拦截,这样导致404错误,即访问不到jsp。所以如果以后发现总是有404错误的时候,别忘了check一下 /的配置是否是/*
servletName
/