zoukankan      html  css  js  c++  java
  • Spring MVC json配置

    接口类的Controller,一般返回的是json数据,而Spring MVC中默认返回的string,而jsp页面的话,会按配置中自己行匹配转义字符串为对应的jsp文件。

    @Controller
    @RequestMapping("/user")
    public class UserController {
    
    	@RequestMapping(value = "/add", method = RequestMethod.GET)
    	@ResponseBody
    	public User addUser() {
    		User obj = new User();
    		obj.setId("321");
    		obj.setName("test");
    		return obj;
    	}
    }
    

     注意红色部分,@ResponseBody标识返回的是纯内容,如返回值是string的话,浏览器端会得到一个string,而不是去匹配相应的jsp文件。

    我们返回的是json,所以@ResponseBody是必需的。

    然后User是我们要序列化为json的对象,相应的转换由spring利用jackson在框架中进行。

    接着看配置。

    	<!-- 配置自动扫描的包 -->
    	<context:component-scan base-package="com.awu.controllers" />
    	<mvc:annotation-driven/>
    
    	<!-- 配置视图解析器 如何把handler 方法返回值解析为实际的物理视图 -->
    	<bean
    		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix" value="/WEB-INF/views/"></property>
    		<property name="suffix" value=".jsp"></property>
    	</bean>
    

     注意红色部分,当我们有Controller中需要处理json时,添加这个默认配置,如果显示的配置的话,也可以按如下配置。

    <mvc:annotation-driven>
    		<mvc:message-converters>
    			<bean class="org.springframework.http.converter.StringHttpMessageConverter" />
    			<bean
    				class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
    		</mvc:message-converters>
    	</mvc:annotation-driven>
    

    Tip:开始用默认配置一直不对,会报java.lang.IllegalArgumentException: No converter found for return value of type。Stackoverflow上也没办法解决。通过显示配置,控制台输出了异常,才发现是jackson的jar包没有引用完全,开始只用了core,实际需要以下:

    • jackson-core-**.jar
    • jackson-databind-**.jar
    • jackson-annotations-**.jar

    我使用的是2.8.1的core和databind,annotations用的2.8.0。相应下载链接:

    core:  http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/

    databind:  http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/

    annotations:  https://github.com/FasterXML/jackson-annotations/wiki

  • 相关阅读:
    小梦windows phone 8.1开发:语音朗读
    windows phone 8.1开发:socket通信聊天
    windows phone 8.1开发:触控和指针事件1
    Windows Phone 8.1开发:触控和指针事件2
    windows phone 8.1开发 onedrive操作详解
    windows phone 8.1开发SQlite数据库引用安装
    利用Register protocol实现网页调用桌面程序(类似迅雷、QQ等)
    windows phone 8.1开发SQlite数据库操作详解
    xrandr
    mongodb
  • 原文地址:https://www.cnblogs.com/dev2007/p/6520023.html
Copyright © 2011-2022 走看看