当前位置: 首页 > 编程笔记 >

Springmvc ResponseBody响应json数据实现过程

万嘉石
2023-03-14
本文向大家介绍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 http://www.ithiema.com
* @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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 我是VueJs的新手 "https://github.com/coreui/coreui-free-vue-admin-template/blob/master/src/views/base/Tables.vue" 在上面的vue中。我想动态地将数据分配给“someData”变量。我试着像下面那样把它绑起来,但没用。

  • 本文向大家介绍Vue实现动态响应数据变化,包括了Vue实现动态响应数据变化的使用技巧和注意事项,需要的朋友参考一下 Vue是MVVM模式,即Model-View-ViewModel,通过绑定数据即可以实时改变视图显示。 比如:使用v-blink动态绑定属性 使用v-html来绑定带有标签的内容(会解析标签) 使用v-text来绑定纯文本的内容(标签会以文本的形式输出) 无论通过哪种形式绑定,都需要

  • 问题内容: 我在javascript中创建了一个函数,像这样: 我调用了脚本文件,并将其用于方法。 在控制器中,我有此操作 但是随着方法参数变为空。 该模型: 用POST发送数据时,我该如何采取行动方法? 我不知道该怎么用。另外,可以通过JSON将响应发送回(到ajax)吗? 问题答案: 建立模型 像下面的控制器 Java脚本

  • Vue中最为开发者们所津津乐道的特性就是其数据响应特性,Vue中的数据响应特性主要包含:响应数据赋值、watch观察数据和computed计算属性,该能力让我们能够以非常直观简洁的方式建立起数据与数据之间/数据与视图之间的绑定依赖关系,大幅提升复杂webapp的开发体验和开发效率。 受此启发,Mpx通过增强的方式在小程序开发中提供了完整的数据响应特性,在2.5.x版本前,Mpx通过mobx实现内部

  • 本文向大家介绍详解实现vue的数据响应式原理,包括了详解实现vue的数据响应式原理的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要是给不了解或者没接触过 vue 响应式源码的小伙伴们看的,其主要目的在于能对 vue 的响应式原理有个基本的认识和了解,如果在面试中被问到此类问题,能够知道面试官想让你回答的是什么?「PS:文中如有不对的地方,欢迎小伙伴们指正」 响应式的理解 响应式顾名思义就是数

  • 我使用的是Spring版本4(Spring data),我想将Object作为JSON返回,我想知道以下代码即使不使用xmlRootElement注释用户类也能工作: 任何机构都可以解释吗?当我需要注释要返回为JSON的对象类时,响应体/响应实体是否自己完成工作?