很久没有编程了,最近配置了一个springMVC的项目,结果controller失效了,任何路径都不拦截,呕死我了。。。web
结果发现是springMVC配置处出了问题,springMVC的配置有两种:spring
一种是:编程
1 <bean 2 class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 3 <property name="messageConverters"> 4 <list> 5 <bean 6 class="org.springframework.http.converter.StringHttpMessageConverter"> 7 <property name="supportedMediaTypes"> 8 <list> 9 <value>text/plain;charset=UTF-8</value> 10 </list> 11 </property> 12 </bean> 13 </list> 14 </property> 15 </bean>
这种配置方法能够 防止@responseBody返回视图出现乱码,因此手动配置Bean,它不能和 <mvc:annotation-driven />一块儿使用 mvc
另外一种:app
1 <mvc:annotation-driven /> post
以前的项目中我用第一种方法配置,项目能够正常运行,不会报错,可是换了一台电脑后,就会出现本文开始提到的问题。spa
解决方法就是,用第二种方法配置便可。code
为何会这样,我也不知道。orm
还有一种状况就是拦截路径问题:blog
1 <form action="/login" method="post"> 2 <div> 3 登陆名:<input type="text" name="Uname" /> 4 密码:<input type="text" name="Upassword" /> 5 <input type="submit" value="登陆" /> 6 </div> 7 </form>
这样默认的拦截路径就是:/login
1 <form action="./login" method="post"> 2 <div> 3 登陆名:<input type="text" name="Uname" /> 4 密码:<input type="text" name="Upassword" /> 5 <input type="submit" value="登陆" /> 6 </div> 7 </form>
这样默认的拦截路径就是:工程名/发出请求页面所在路径/login
若是控制器里面拦截路径这么写:
@RequestMapping("/login") public String checkLogin(){ }
controller的拦截路径为:工程名/login
@RequestMapping("**/login") public String checkLogin(){ }
controller的拦截路径为:工程名/发出请求页面所在路径/login
若是页面请求路径和拦截路径不同就会报,404错误,找不到。。。
初学者的烦恼呀。。。