Ajax 提交json格式数据
在实际的开发当中,尤其是在前后端分离的项目中,传输数据都是以json格式进行传输的,所以对于json格式数据的情求和响应的学习十分重要。
1、前端提交json格式数据
前端一般是通过 Ajax 进行表单提交
设置ajax的contentType属性contentType:application/jsondata属性提交的数据就需要是json格式的 data:'{"did":"","dname":"'+dname+'"}' 具体实现代码:
<script type="text/javascript">
$(function () {
$('#btn_add').click(function () {
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) {
if(200==result.code){
alert(result.msg)
}
},
error:function () {
alert('服务问题,请求失败')
}
});
})
})
</script>
2、后端接收json格式数据并响应json格式数据
1)设置@RequestMapper注解中的参数consume=application/json2)在传入参数的位置使用@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);
@Autowired
IDepartmentService 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
){
l
.info("add dept="+dept
);
try {
iDepartmentService
.saveDepartment(dept
);
return Result
.init(200,"添加成功",null
);
} catch (Exception e
) {
e
.printStackTrace();
}
return Result
.init(-200,"添加失败",null
);
}
}