想必很多人在整合springmvc的时候有可能也遇到了这么一个问题,访问controller方法的时候遇到了404问题
今天我就是遇到这个问题,虽然不是500那么严重,但是对于我第一次使用ssm来搭建项目,解决这个问题也花了一晚的时间。最后经过来回检查,才发现是我没有在注解的controller类使用@Controller进行注解,只关注了类中方法的注解@RequestMapping("")需要注解。
下面我自己总结整合springmvc是需要注意的小问题,如果有什么总结不对的,请大佬们指点指点:
-
在web.xml中配置前端控制器DispatcherServlet的时候,如果不配置contextConfigLocation,则默认加载的是/WEB-INF/servlet名称-servlet.xml(例如springmvc-servlet.xml),如果需要配置contextConfigLocation时,
<param-value></param-value>
中的值分两种情况,第一种情况是springmvc的xml配置文件放在项目的WEB-INF文件里,那么需要这样配置<param-value>/WEB-INF/springmvc.xml</param-value>
;第二种情况是放在项目的src文件里,那么配置的是<param-value>classpath:springmvc.xml</param-value>
。 -
关于配置处理器映射器和适配器,需要注意的是非注解的处理器映射器和非注解的处理器适配器两两配对,注解的处理器映射器和注解的处理器适配器两两配对,不能相互混合使用。
2.1 使用非注解的处理器映射器和适配器时,必须在配置文件里声明注入controller,并且controller必须实现Controller接口。
2.2 使用注解的处理器映射器和适配器时,注解的controller类必须使用@Controller进行注解,类中的方法使用@RequestMapping("")进行注解。(这次就是因为个人疏忽,忘记给controller类使用@Controller进行注解)
解决404问题时,一定要分析是哪个路径环节出现错误,不能一味的觉得是controller映射路径的错误,也有可能是controller类中的方法需要跳转的路径出现错误。