springmvc ajax jsonの使用

4897 ワード

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