Spring MVC - 在使用mvc:resources时将控制器映射到上下文根(/)

dar*_*rdo 10 java spring-mvc

早上,

有问题将控制器映射到/(即localhost:8080/someApp /将映射到@Controller("/"))同时还使用mvc:resources

web.xml映射:

  <servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

MVC:资源

<mvc:resources mapping="/resources/**" location="/resources/" />
Run Code Online (Sandbox Code Playgroud)

服务器正确加载页面,但是当我映射到资产时,即

<link type="text/css" rel="stylesheet" href="<c:url value="/resources/css/blueprint/print.css"/>" />
Run Code Online (Sandbox Code Playgroud)

在Web浏览器中通过view-source单击css文件时,服务器响应将映射回索引页,而不是资源.让我相信它与servlet映射有关.

任何帮助都会很棒!

谢谢!

编辑: 忘了提,如果我绑定控制器说:

@Controller("/pages")
Run Code Online (Sandbox Code Playgroud)

一切正常,只是希望上下文根能够正确响应.

dar*_*rdo 10

@Controller("/)
Run Code Online (Sandbox Code Playgroud)

@RequestMapping("/")
Run Code Online (Sandbox Code Playgroud)

不是一回事.

由于@RequestMapping可以放在类级别,因此将映射放在类上会产生所需的效果.

例:

@Controller
@RequestMapping("/")
public class RootController
{

  @RequestMapping(method=RequestMethod.GET)
  public String index()
  {
    return "index";
  }

}
Run Code Online (Sandbox Code Playgroud)

这将正常工作,也适用于mvc:resources bean.