使用JSON为实体赋值代替传统setter方法

在这里插入图片描述
注释的内容是使用springBoot给数据库添加信息时的传统方式,没有注释的部分就是这次要说的内容。
跟传统代码基本一样,改动的地方不多,主要是前端页面改动大一点,后端的代码用那几句代替了接收值和赋值的部分。

先看前端代码

<td>手机号:
	<input type="text" id="tell" v-model="work.tell">&nbsp;&nbsp;&nbsp;&nbsp;名:
	 <input type="text" v-model="work.name"><br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;好:
	<input type="checkbox" value="代码" v-model="hobby">代码&nbsp;&nbsp; 
	<input type="checkbox" value="游戏" v-model="hobby">游戏&nbsp;&nbsp; 
	<input type="checkbox" value="音乐" v-model="hobby">音乐&nbsp;&nbsp;
<br />&nbsp;&nbsp;&nbsp;&nbsp;别:
	<input type="radio" v-model="sex" name="sex" value="">&nbsp;&nbsp;
	<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;	
}

这种做法的好处就是减少了后端的代码量,而且方便后期维护了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值