这是不配置<mvc:annotation-driven/>标签时的public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler)的第三个参数

这是在配置<mvc:annotation-driven />标签时的public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler)的第三个参数

粗略总结:此标签会加载一些spring的初始化类,来进行初始化。(分析源码时,再详细解)
错误: 在此处情景下,
@RequestMapping("/vm")
@ResponseBody
public JsonResult vm(HttpServletRequest request,HttpServletResponse response){
JsonResult jr =new JsonResult();
System.out.println("systemController/vm....");
return jr;
}
public class JsonResult { private boolean success = true; private Map<String ,Object> results = new HashMap<String,Object>(); private Long page =1L; private Long total ; //get set方法省略 }
仅仅配置<mvc:annotation-driven></mvc:annotation-driven>会出现下图错误

提示没有对应的converter,至于为什么,有待分析源码给出准确答案。
解决办法:配置<mvc:message-converters></mvc:message-converters>子标签,引入阿里fastjson支持,不使用spring默认的Jackson。完整配置如下:
<mvc:annotation-driven>
<mvc:message-converters>
<!-- 配置fastjson代替原来jackson的支持 -->
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>text/json;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
【springMVC】<mvc:annotation-driven />标签的使用、作用?
原文:https://www.cnblogs.com/oldwei/p/9081554.html