sprngMVC在有注解ResponseBody时,报no convert错误

原因时没有添加相应的转换器,当请求request被handler处理琬,当springMVC试图去解析视图时,没有找到可以解析当前返回的对象,也就是returnValue。

我虽然在CSDN上找到解决方法,也就是加上jackson-databind依赖,让springMVC支持将对象转成json字符。但是我还是不明白,jackson是如何作为一个Converter对象被装在进去的,然后我通过debug发现了一处代码

public AllEncompassingFormHttpMessageConverter() {
     
        try {
     
            this.addPartConverter(new SourceHttpMessageConverter());
        } catch (Error var2) {
     
            ;
        }

        if (jaxb2Present && !jackson2XmlPresent) {
     
            this.addPartConverter(new Jaxb2RootElementHttpMessageConverter());
        }

        if (jackson2Present) {
     
            this.addPartConverter(new MappingJackson2HttpMessageConverter());
        } else if (gsonPresent) {
     
            this.addPartConverter(new GsonHttpMessageConverter());
        } else if (jsonbPresent) {
     
            this.addPartConverter(new JsonbHttpMessageConverter());
        }

        if (jackson2XmlPresent) {
     
            this.addPartConverter(new MappingJackson2XmlHttpMessageConverter());
        }

        if (jackson2SmilePresent) {
     
            this.addPartConverter(new MappingJackson2SmileHttpMessageConverter());
        }

    }

代码片段位于

  class AllEncompassingFormHttpMessageConverter

然后我就明白了原来是springMVC本身就支持这几种特定转换器,而不是因为jackson主动做了什么。

你可能感兴趣的:(springMVC,springMVC,jackson,convert)