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
相关推荐
使用springMVC+ajax+json的一个小demo,希望对读者有用
ajax向springmvc传递json,
SpringMVC利用Ajax,JQuery交互Json
ajax+springmvc+json,一个小demo,简单的配置,day day up !
springmvc spring hibernate ajax json简单完整的demo下载可直接运行,希望可以帮助大家
注:此项目是用IntelliJ IDEA 13.1.3此软件编写而成,不过和myeclipse都差不多,本项目包含SpringMVC+JSON+mybatis+jQuery+Ajax+Maven做的无刷新登录,注册,修改密码,拦截器,如果用户没有登录则不能进行相应操作...
用来解决SpringMVC+Ajax技术中前台报406的错误信息,实现后台json格式与前台一致
springmvc jquery ajax json 异步传递数据 springmvc异步传递请求 已包含全部源代码实现 把jar包放入 然后新建文件 配置xml !!!!! 全部资源
Springmvc+maven+ajax+jquery+json+mybatis做的登录,注册,增删改查详细注释,大家可以来一下,看看对自己有没有帮助哈,这是我自己一点点的打的,采用MyEclipse 10运行出来.并且付有sql脚本.可直接导入运行.并且经本人...
springmvc搭配Jquery和Jackson的使用,使用Ajax异步的使用!
本项目用了Eclipse luna版本搭建了springmvc spring mybatis ajax json的例子,数据库方面的功能只实现了一个,不过接口都已写好
jackson-annotations-2.4.6.jar jackson-core-2.5.0.jar jackson-databind-2.4.6.1.jar
Springmvc+maven+ajax+jquery+json+mybatis做的登录,注册,增删改查详细注释,大家可以来一下,看看对自己有没有帮助哈,这是我自己一点点的打的,采用Eclipse和IntelliJ IDEA 13.1.3均可运行出来.并且付有sql脚本.可直接...
本项目为Springmvc+mybatis+JSON+jQuery+Ajax无刷新登录,导出Excel,修改密码,RestFUL风格增删改查,加Js用户名检验以及密码长度校验等等。并且有大家喜欢的功能导出EXCEL,并且也实现了ajax无刷新注册,登录等等,...
SpringMVC4.3.6配置json所需要的jar包,不是使用最新最高的版本可以的,我尝试了,有错误:严重: Servlet.service() for servlet [springMVC] in context with path [/30-returnVoid-ajax] threw exception [Handler...
模拟了基本前端与后端交互JSon数据,使用了Java语言+Maven+SpringMVC+Ajax @RequestBody+Json传输完成基本数据交互
jQuery ajax 通过JSON 下拉列表框级联,点击省份,级联城市,此demo是在springMVC环境下实现的,如果感兴趣可以下载我整理的springMVC.
最近学习了springmvc 接收json对象的两种方式,现在整理出来,具体如下: 1、以实体类方式接收 前端 ajax 提交数据: function fAddObj() { var obj = {}; obj['objname'] = obj; obj['pid'] = 1 ; $.ajax...
Springmvc+maven+ajax+jquery+json+mybatis做的异步登录,注册,增删改查详细注释,大家可以来一下,看看对自己有没有帮助哈,这是我自己一点点的打的,采用IntelliJ IDEA 13.1.3运行出来.并且付有sql脚本.可直接导入运行...
SpringMVC注解和Spring框架是页面使用js—jquery—ajax—使用JSON传输数据时必备的包