开发电信计费系统时碰到注册功能,因为是使用 MVC + ajax + html 方式实现,因此jsp的标签 就不能够用了。对于多个参数传递 实在让人蛋碎 , 本来觉得 和表单传值同样简单,结果是本身太天真了。 不过还好,总算是学会了。html
1 、前台js代码ajax
var DTO = {"name":"Tom","age":25}; $.ajax({ type:"post", contentType:"application/json;charset=utf-8", data:JSON.stringify(DTO), dataType:"json", success:function(){...} })
须要注意的是:1)必须设置 contentType : "application/json;charset=utf-8"json
由于普通请求默认是 text/html!app
不设置会致使页面返回 415 错误代码jsp
2)传输的JSON对象须要序列化post
二、后台controller代码code
@Controller @RequestMapping(value="XXX") public class Exa{ @RequestMapping(value="XXX",method=RequestMethod.POST) public void reg(@RequestBody Person person){ System.out.println(person.toString()); } }
须要导入相应的jar包htm
注意加入标记 @RequestBody 对象
此标记功能与 @ResponseBody功能恰好相反, 是将请求传入的JSON对象 转成 对应的 自定义对象。utf-8