今天在搭建一个ssm项目时,使用了@responseBody注解,但是出现了异常:
java.lang.IllegalArgumentException: No converter found for return value of type: class com.block.web.bean.User
at org.springframework.util.Assert.isTrue(Assert.java:68) ~[spring-core-4.2.0.RELEASE.jar:4.2.0.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:124) ~[spring-webmvc-4.2.0.RELEASE.jar:4.2.0.RELEASE]
at
异常的原因是因为@responseBody注解是将返回的对象转换成json,但是springmvc本身并没有自带的json序列化工具,所以需要借助第三方的json序列化工具。我使用的是alibaba的fastjson,修改spring-mvc.xml文件:
<mvc:annotation-driven>
<mvc:message-converters>
<bean id="fastJsonHttpMessageConverter"
class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
重启即可