• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Y-wee
博客园    首页    新随笔    联系   管理     

springmvc之ResponseBody响应json数据

springmvc之ResponseBody响应json数据

该注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的数据如:json,xml 等,通过 Response 响应给客户端

示例

需求:使用@ResponseBody 注解实现将 controller 方法返回对象转换为 json 响应给客户端。

前置知识点:Springmvc 默认用 MappingJacksonHttpMessageConverter 对json数据进行转换,需要加入jackson 的包。

注:2.7.0以下的版本用不了

jsp代码

<!-- 测试异步请求 --> 
<input type="button" value="测试ajax请求json和响应json" id="testJson"/>

<script type="text/javascript"src="${pageContext.request.contextPath}/js/jquery.min.js"></script> 
<script type="text/javascript">
$(function(){
	$("#testJson").click(function(){
        $.ajax({
            type:"post",
            url:"${pageContext.request.contextPath}/testResponseJson",
            contentType:"application/json;charset=utf-8",
            data:JSON.stringify({"id":1,"name":"test","money":999.0}),
            dataType:"json",
            success:function(data){
            	alert(data);
			}
		});
	});
})
</script>

控制器代码

/**
* 响应 json 数据的控制器
* @author 黑马程序员
* @Company 
* @Version 1.0
*/
@Controller("jsonController")
public class JsonController {
    /**
    * 测试响应 json 数据
    */
	@RequestMapping("/testResponseJson")
	public @ResponseBody Account testResponseJson(@RequestBody Account account) {
        System.out.println("异步请求:"+account);
        return account; 
	} 
}

配置json转换器

如果不使用注解驱动<mvc:annotation-driven />,就需要给处理器适配器配置json转换器

在springmvc.xml配置文件中,给处理器适配器加入json转换器:

<!--处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
    	<list>
    		<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
    	</list>
    </property>
</bean>
记得快乐
posted @ 2020-10-19 15:38  Y-wee  阅读(241)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3