注释的内容是使用springBoot给数据库添加信息时的传统方式,没有注释的部分就是这次要说的内容。
跟传统代码基本一样,改动的地方不多,主要是前端页面改动大一点,后端的代码用那几句代替了接收值和赋值的部分。
先看前端代码
<td>手机号:
<input type="text" id="tell" v-model="work.tell">
姓 名:
<input type="text" v-model="work.name"><br />
<br /> 爱 好:
<input type="checkbox" value="代码" v-model="hobby">代码
<input type="checkbox" value="游戏" v-model="hobby">游戏
<input type="checkbox" value="音乐" v-model="hobby">音乐
<br />
性 别:
<input type="radio" v-model="sex" name="sex" value="男">男
<input type="radio" v-model="sex" name="sex" value="女">女<br />
上面代码可以看到,除了radio,其它标签都没有了name属性,全部都多了v-model属性,而且属性值也是work. 的形式。
js代码
post传值的地方注意看一下
var vm=new Vue({
el: '#app',
data:{
work:{},
hobby:[],//hobby有三个,传递过来是数组形式,要单独报错以下
sex:"男"//这里给性别单选框设置一个默认值
},
methods:{
save:function(){
this.work.hobby=vm.hobby.join(",");//将hobby数组转字符串存入work数组中
this.work.sex = this.sex;//将当前的sex属性赋给work。sex
//alert(JSON.stringify(this.work));
$.post("/work/save",{work:JSON.stringify(this.work)},function(data){
if(data.num==1){//返回值为1,成功添加,跳转首页
window.location.href="/work/VueIndex";
}else{//否则,提示添加失败,不跳转
alert(data.message);
}
});
}
},
});
controller代码
@RequestMapping("save")
@ResponseBody
public JSONObject save(HttpServletRequest req,Model model) {
//获取值
String tell = req.getParameter("work");
JSONObject jsonobject = JSONObject.fromObject(tell);
try {
//常见的java代码转换成json
//System.out.println(jsonobject);
Work work= (Work)JSONObject.toBean(jsonobject,Work.class);//从JSONObject 对象转换为 JAVA 对象。
//调用添加方法
workService.save(work);
//返回内容到添加页面判断添加是否成功
jsonobject.put("num", 1);
jsonobject.put("message", "保存成功");
}catch (Exception e) {
jsonobject.put("num", 0);
jsonobject.put("message", "保存失败");
}
return jsonobject;
}
这种做法的好处就是减少了后端的代码量,而且方便后期维护了。