spring mvc 3开始,提供了对json的直接支持。这部分的支持功能包括把返回信息转化成json和将request body内容转换成json。 spring 给出了一个svn,里面的一个ajax例子,写的功能挺多的。 https://src.springframework.org/svn/spring-samples/mvc-ajax/trunk/ 可以从上面的地址下载下来运行。这是个maven应用。 就以这个事例做讲解。 spring mvc 3.0不需要任何其他配置,添加一个jackson的架包 ,既可以支持的。 org.codehaus.jacksonjackson-mapper-asl1.6.4 @RequestMapping(method = RequestMethod.GET) public String getCreateForm(Model model) { model.addAttribute(new Account()); return "account/createForm"; } 这个方法,当默认访问/account的时候会进入,它会返回account/createForm,这个逻辑视图是一个叫createForm的页面,会生成表单。 $(document).ready(function() { // check name availability on focus lost $('#name').blur(function() { checkAvailability(); }); }); 这个页面中有这段内容。是在name字段丢失焦点,触发检查。 function checkAvailability() { $.getJSON("account/availability", { name: $('#name').val() }, function(availability) { if (availability.available) { fieldValidated("name", { valid : true }); } else { fieldValidated("name", { valid : false, message : $('#name').val() + " is not available, try " + availability.suggestions }); } }); } $.getJSON("account/availability", { name: $('#name').val() }, 这里调用的getJSON比较重要,因为它将请求的头信息写入 accpet : application/json, text/javascript, */*, accpet : application/json这句是重点。如果没有这句,浏览器解析到的response的ContentType 和 head accpet 都是 ,application/json(因为ResponseBody注解,return 的非String 非ModelAndView类型的时候默认设置为json,它会设置content-type为Content-Type:application/json;charset=UTF-8),而request的头信息的accpet不是application/json,那么浏览器发现application开头的contxt-type就会提醒你是否保存,而对于ajax调用,这个是否保存的按钮不会出现(涉及到安全问题)那么你的这个ajax是无法收到返回的内容的(google chrome浏览器除外)。 如图,非ajax访问,就会出现这个。 [img]http://dl.iteye.com/upload/attachment/501599/07420b54-74c9-37f2-9025-e167d995fb5d.jpg" alt="[/img] 对于以上的js不做详细解释。 @RequestMapping(value = "/availability", method = RequestMethod.GET) public @ResponseBody AvailabilityStatus getAvailability(@RequestParam String name) { for (Account a : accounts.values()) { if (a.getName().equals(name)) { return AvailabilityStatus.notAvailable(name); } } return AvailabilityStatus.available(); } 这个叫getAvailability的方法。这个方法的请求参数解析和json没关系,因此请求参数 name没有写@RequestBody。 只看方法的定义之前有一个 @ResponseBody。关于这个注解查看我的的 sping mvc连载文章。 AvailabilityStatus是返回类型。这种返回类型由于有@ResponseBody,那么spring将查找相应的HttpMessageConverter类处理,3.0默认的当然是json转换器了。 post提交json格式数据到服务器 [code="javascript"] $("#account").submit(function() { var account = $(this).serializeObject(); $.postJSON("account/create", account, function(data) { alert(data); $("#assignedId").val(data.id); showPopup(); }); return false; }); var account = $(this).serializeObject();这行代码我不给出了,这个是将form表单的字段序列化成json格式。 $.postJSON("account/create", account, function(data) 是json.min.js提供的方法。是以post方式提交的。 [code="java"] @RequestMapping(value = "/create", method = RequestMethod.POST) public @ResponseBody Map create(@RequestBody Account account, HttpServletResponse response) { Set> failures = validator .validate(account); if (!failures.isEmpty()) { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return validationMessages(failures); } else { accounts.put(account.assignId(), account); return Collections.singletonMap("id", account.getId()); } } 首先返回值是Map json怎么处理Map的不解释。 @ResponseBody还是一样 @RequestBody Account account,这里的@RequestBody,关于这个注解的其他信息查看我的spring mvc 第一篇。 这个@RequestBody也会调用HttpMessageConverter来解析成对象。因为我们的postJSON方法会发送Content-type是application/json,所以还是使用的json转换器了,
http://shop.paipai.com/799078779
http://shop.paipai.com/799078779
http://shop.paipai.com/799078779
http://shop.paipai.com/799078779
http://shop.paipai.com/799078779
http://shop.paipai.com/799078779
相关推荐
Spring MVC、Ajax 和 JSON 是现代Web开发中的关键技术,它们共同构建了高效、动态的用户界面。下面将详细解释这三个技术及其在实际应用中的结合。 **Spring MVC** Spring MVC 是 Spring 框架的一部分,用于构建基于...
本教程将深入讲解如何在SpringMVC中利用Ajax和JQuery来交互Json数据。 首先,让我们理解什么是Json。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成...
2. **创建Controller**:定义一个SpringMVC的控制器类,包含一个处理Ajax请求的方法,该方法使用`@RequestMapping`注解来匹配URL,`@ResponseBody`注解将返回值转化为JSON。 3. **Ajax请求**:在前端JavaScript代码...
4. **SpringMVC与JSON的结合**:在SpringMVC中,使用JSON进行数据传递,主要涉及到两个关键类:`HttpMessageConverter` 和 `Jackson` 库。`HttpMessageConverter` 负责将Java对象转换成JSON字符串,或将JSON字符串反...
- **前端**:使用JavaScript库如jQuery的`$.ajax`或`$.formData`来构造一个FormData对象,将文件添加到其中,然后通过XMLHttpRequest发送请求。例如: ```javascript var formData = new FormData(); formData....
本文将详细介绍如何在SpringMVC中集成并使用JSON和XML视图,以及相关的库如json-lib、Jackson、xStream、Jibx和Jaxb2。 首先,让我们理解JSON和XML的作用。JSON(JavaScript Object Notation)是一种轻量级的数据...
在这个"springmvc spring hibernate ajax json"的简单完整DEMO中,我们可以预期以下几个方面的集成和使用: 1. **Spring MVC** 作为前端控制器,负责接收HTTP请求,调度到相应的Controller处理。 2. **Spring** 通过...
总结来说,Ajax向Spring MVC传递JSON涉及的主要步骤包括前端的数据序列化、Ajax请求的发起、服务器端的参数绑定、业务处理及响应的JSON化。理解并熟练掌握这一流程对于进行高效的前后端数据交互至关重要。在实际项目...
在前端,通常使用JavaScript的`fetch` API或jQuery的`ajax`方法发送JSON请求。以下是一个简单的JavaScript示例: ```javascript let user = { name: '张三', age: 30 }; fetch('/saveUser', { method: 'POST', ...
然而,当我们在使用SpringMVC和Ajax进行数据交互时,可能会遇到406错误,这意味着服务器不能提供客户端所接受的任何形式的内容。本文将详细介绍如何在SpringMVC中后台转换JSON格式,以解决406错误问题。 406错误...
结合使用SpringMVC和Ajax,可以实现异步数据交互,提高用户体验。 在SpringMVC中,Ajax请求通常涉及到以下几个关键步骤: 1. **前端准备**: - 首先,你需要在HTML页面中引入jQuery库,因为它是广泛使用的...
注:此项目是用IntelliJ IDEA 13.1.3此软件编写而成,不过和myeclipse都差不多,本项目包含SpringMVC+JSON+mybatis+jQuery+Ajax+Maven做的无刷新登录,注册,修改密码,拦截器,如果用户没有登录则不能进行相应操作...
例如,以下是一个简单的SpringMVC控制器方法,它使用Ajax请求返回一个JSON对象: ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation....
3. **数据交换格式**:Ajax请求通常返回JSON或XML数据,因为它们易于解析且轻量。SpringMVC可以通过`@ResponseBody`注解将方法的返回值直接转换为HTTP响应体,或者使用`@RestController`注解标记整个Controller为...
在这个主题"springmvc-ajax-json"中,我们将深入探讨如何在Spring MVC中整合jQuery和Jackson库,实现前端与后端的数据交互,特别是在使用Ajax进行异步请求时。 首先,Spring MVC 提供了Controller接口和@...
SpringMVC 接收 Ajax 请求注意事项 SpringMVC 框架在处理 Ajax 请求时需要注意一些重要的配置和设置,以确保请求的正确处理和数据的正确传输。下面我们将介绍在 SpringMVC 中接收 Ajax 请求的注意事项。 基本数据...
Ajax技术结合JSON(JavaScript Object Notation)数据格式,可以高效地传输数据,简化Web应用的复杂性。以下将详细介绍如何在Spring MVC中配置Ajax并实现相关功能。 1. **引入依赖**: 在项目中,我们需要添加对...
你可以使用Postman、curl或其他HTTP客户端工具,或者在前端使用Ajax来调用这些接口。 **7. 注意事项** - 确保你的Java对象(如`User`类)有合适的getter和setter方法,以便Jackson能够正确序列化和反序列化。 - ...
在本教程中,我们将探讨如何结合`SpringMVC`和`Ajax`来实现异步文件上传,并讨论短视频背景以及`a`标签绑定文件域的相关知识。 1. **SpringMVC中的文件上传** - **MultipartFile接口**:`SpringMVC`提供了一个名为...
在SpringMVC中,可以使用`@ResponseBody`注解将方法返回的对象直接转换为JSON字符串,然后通过Ajax返回给客户端。 实现SpringMVC、jQuery、Ajax和JSON的异步传递数据,首先需要配置SpringMVC的DispatcherServlet和...