spring MVC静态资源访问问题,resource设置之后只能访问tomcat目录下的

图片说明

按照上图设置之后,访问的是
.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
  /