一,页面
商品修改页面用ajax交互,前端接收json字符串
1.引入jQuery
${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"
2.js采用ajax异步提交
<input type="button" onclick="save()" value="提交" />
js:
<script type="text/javascript">
function save(){
//ajax异步提交
$.ajax({
url:'${pageContext.request.contextPath }/updateitemAjax.action',
type:'post',
data:$("#itemForm").serialize(),
dataType:'json',
success:function(data){
//data :{"success":true|false,"message":"操作成功"|“操作失败”}
if(data.success){
location.href = "${pageContext.request.contextPath }/list.action";
}else{
alert(data.message);
}
}
})
}
</script>
$("#itemForm").serialize() :把表单内容组成一个对象的方法
二,后台
1.准备jar包
Springmvc默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的包
2.controller
@RequestMapping("/updateitemAjax")
@ResponseBody //作用 把即将返回的对象转成json字符串并且回写到浏览器
public Map updateitemAjax(Items item) {
//data :{"success":true|false,"message":"操作成功"|“操作失败”}
Map<String, Object> map = new HashMap<String, Object>();
try {
itemsService.update(item);
map.put("success", true);
map.put("message", "操作成功");
} catch (Exception e) {
map.put("success", false);
map.put("message", "操作失败");
}
return map;
}
@ResponseBody:该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端
3.补充@RequestBody(了解)
强制请求的参数是json对象,不是json字符串将会报错