Spring 版本:5.0.2
如果项目中将 DispatcherServlet 的 url-pattern 设置为/
,静态资源放行采用<mvc:default-servlet-handler/>
或<mvc:resources/>
的方式,那么下面这种情况会导致静态资源无法正常放行。
如果存在一个 Controller,没有在类上添加@RequestMapping
注解;
而在该 Controller 中,存在一个 Handler,没有在@RequestMapping
注解中指定path
属性。
此时,会影响静态资源的正常放行:
@Controller
// 没有添加 @RequestMapping 注解
public class IndexController {
@RequestMapping // @RequestMapping 中没有指定请求路径
public String index() {
return "/index.jsp";
}
}
解决办法有 2 个:
- 在 Handler 的
@RequestMapping
注解中指定path
属性,值为""
和"/"
都行。 - 在 Controller 类上也添加
@RequestMapping
注解。