Spring mvc3的ajax

在Springmvc3中,响应、接受JSON都十分方便。

使用注解@ResponseBody可以将结果(一个包含字符串和JavaBean的Map),转换成JSON。

使用@RequestBody注解前台只需要向Controller提交一段符合格式的JSON,Spring会自动将其拼装成bean。

Spring这个转换是靠org.codehaus.jackson这个组件来实现的,所有需要引入jackson-core-asl和org.codehaus.jackson两个jar包

Html代码

<title>SpringMVC</title>

<scripttype="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<scripttype="text/javascript"src="http://jquery-json.googlecode.com/files/jquery.json-2.2.min.js"></script>

<scripttype="text/javascript"src="<%=request.getContextPath()%>/scripts/user/index.js"></script>

</head>

<body>

<divid="info"></div>

<formaction="add"method="post"id="form">

编号:<inputtype="text"name="id"/>

姓名:<inputtype="text"name="username"/>

年龄:<inputtype="text"name="age"/>

<inputtype="button"value="提交"id="submit"/>

</form>

</body>

</html>

Js代码

//将一个表单的数据返回成JSON对象

$.fn.serializeObject=function(){

varo={};

vara=this.serializeArray();

$.each(a,function(){

if(o[this.name]){

if(!o[this.name].push){

o[this.name]=[o[this.name]];

}

o[this.name].push(this.value||'');

}else{

o[this.name]=this.value||'';

}

});

returno;

};

$(document).ready(

function(){

jQuery.ajax({

type:'GET',

contentType:'application/json',

url:'user/list',

dataType:'json',

success:function(data){

if(data&&data.success=="true"){

$('#info').html("共"+data.total+"条数据。<br/>");

$.each(data.data,function(i,item){

$('#info').append(

"编号:"+item.id+",姓名:"+item.username

+",年龄:"+item.age);

});

}

},

error:function(){

alert("error")

}

});

$("#submit").click(function(){

varjsonuserinfo=$.toJSON($('#form').serializeObject());

alert(jsonuserinfo);

jQuery.ajax({

type:'POST',

contentType:'application/json',

url:'user/add',

data:jsonuserinfo,

dataType:'json',

success:function(data){

alert("新增成功!");

},

error:function(data){

alert("error")

}

});

});

});

Java代码

@Controller

@RequestMapping("/user")

publicclassDemoController{

privateLoggerlogger=LoggerFactory.getLogger(DemoController.class);

@RequestMapping(value="/list",method=RequestMethod.GET)

@ResponseBody

publicMap<String,Object>getUserList(){

logger.info("列表");

List<UserModel>list=newArrayList<UserModel>();

UserModelum=newUserModel();

um.setId("1");

um.setUsername("sss");

um.setAge(222);

list.add(um);

Map<String,Object>modelMap=newHashMap<String,Object>(3);

modelMap.put("total","1");

modelMap.put("data",list);

modelMap.put("success","true");

returnmodelMap;

}

@RequestMapping(value="/add",method=RequestMethod.POST)

@ResponseBody

publicMap<String,String>addUser(@RequestBodyUserModelmodel){

logger.info("新增");

logger.info("捕获到前台传递过来的Model,名称为:"+model.getUsername());

Map<String,String>map=newHashMap<String,String>(1);

map.put("success","true");

returnmap;

}

}

相关推荐