Ajax 提交json格式数据
在实际的开发当中,尤其是在前后端分离的项目中,传输数据都是以json格式进行传输的,所以对于json格式数据的情求和响应的学习十分重要。
1、前端提交json格式数据
前端一般是通过 Ajax 进行表单提交
设置ajax的contentType属性contentType:application/json
data属性提交的数据就需要是json格式的data:'{"did":"","dname":"'+dname+'"}'
具体实现代码:
<script type="text/javascript">$(function () {$('#btn_add').click(function () {//js发送请求var dname= $('#add_dname').val()console.info(dname)$.ajax({url:'${path}/deptv3/add',async:true,data:'{"did":"","dname":"'+dname+'"}',type:"post",contentType:"application/json;charset=UTF-8",success:function (result) {//js接收结果if(200==result.code){alert(result.msg) //js更新页面//刷新列表}},error:function () {alert('服务问题,请求失败')}});})})</script>
2、后端接收json格式数据并响应json格式数据
1)设置@RequestMapper注解中的参数consume=application/json
2)在传入参数的位置使用@RequestBody
注解,将接收的json格式数据转换为Object3)在映射方法上添加@ResponsBody
注解在使用这些注解的时候需要在application Context.xml文件中配置注解驱动<mvc:annotation-driven/>
在pom.xml文件中加入jackson依赖代码@Controller@RequestMapping("/deptv3")public class DepartmentV3Controller {private static final Logger l = LoggerFactory.getLogger(DepartmentV3Controller.class);@AutowiredIDepartmentService iDepartmentService;@RequestMapping(path="/addUI",method = RequestMethod.GET)public String addUI(){return "add_dept";}@RequestMapping(path="/add",method = RequestMethod.POST,consumes = "application/json")public @ResponseBody Object add(@RequestBody Department dept){//{did:0,dname:IOS}l.info("add dept="+dept);try {iDepartmentService.saveDepartment(dept);return Result.init(200,"添加成功",null);} catch (Exception e) {e.printStackTrace();}return Result.init(-200,"添加失败",null);}}