一个页面中多个form提交之后如何用后台接收_品牌新增业务之后台代码的编写...

今天是刘小爱自学Java的第147天。

感谢你的观看,谢谢你。

29785f9ce2a338b0f3beb8d0eeb38960.png

学习计划安排如下:

  • 写完查询业务,继续写品牌新增业务。
  • 查询业务我们从前端到后台完整地写了一遍。
  • 新增业务就不用自己使用vue写前端页面了,直接用模板,主要专注于后台Java代码的编写。

一、新增品牌页面

虽说有现成已经写好的前端模板,但是也要自己看得明白,不然干了啥都不清楚。

点击新增品牌按钮,会弹出一个对话框,其vue是如何编写的呢,我们看下代码:

1df683260a77a5bbe03903bb98f6cf3d.png

因为vue文件代码太长,我不可能全部截下来,截其中关键的部分,做一个流程梳理:

①新增品牌按钮

给该按钮设定了一个点击事件,点击事件一旦触发会调用addBrand方法。

②addBrand方法

看名字就知道是新增品牌业务,其具体干了啥呢?它将show设置成了true。

这个show又是啥呢?

③弹出的对话框

show默认值是false,是用来隐藏/显示对话框的,③其实也就对应着弹出的对话框。

我们再次深入会发现,closeWindow方法对应的也就是对话框右上角的关闭按钮,它就是将show设置成false了,所以能关闭对话框。

值得注意的是

前端代码也可以和后台Java代码一样,使用Ctrl+左键快速跳转到方法/属性/组件。

④自定义组件brand-form

Ctrl+左键点击该标签会跳转到新文件,这也就是我们自定义的组件brand-form。

2BrandForm.vue文件

9c8ac7d9f9eac5bac9d8250ac015d4de.png

这是一个自定义的vue组件,其有一个name属性,值为brand-form。

在其它页面中可以使用import引入该组件再使用,页面受限就不截图说明了。

总之标签名和name属性要保持一致。

①前端校验

看到required就可以想到是前端数据校验,要求该数据不能为空。

②图片上传业务

这个对应了另一个独立的业务,其请求路径即为url,要在服务器中接受该请求处理,该业务我们后续会说明。

③submit方法

提交按钮对应的submit方法:

7ba54992c26852bb584a612e7b77cc76.png

确定四件事情:

  • 请求路径:如上图所示。
  • 请求方式:例子中是Post请求。
  • 请求参数:此处是上图4个参数。
  • 返回值:返回值为空。

确定这4点就可以编写后台代码了。

二、后台代码编写

Java三层代码编写,品牌新增依旧是属于商品微服务lxa-item中的品牌相关。

1Controller层

a2d890126e5a922ee8217e1e7cc5964c.png

@RequestMapping设定请求路径。

@PostMapping接受Post请求。

请求参数本来一共有4个:

  • 其中有3个是属于Brand实体类的属性,所以用Brand对象代替。
  • cids是商品分类id。

返回值为空,所以rest风格中用ResponseEntity来表示。

响应的状态码是201“Created”即对应的枚举CREATED。

2Service层

2fafade78a87f7039c5593615bd0fdd5.png

①新增品牌

因为我们昨天就编写过Brand实体类,并利用通用mapper将其和数据表对应起来了。

所以新增时直接使用通用mapper的insertSelective()方法即可新增品牌。

②新增cid和bid

新增数据到中间表tb_category_brand。

因为我们没有创建和其相关的Java实体类,所以没法直接使用通用mapper。

但是好在Mybatis支持注解,所以我们创建insertCategoryBrand方法使用注解说明新增sql语句。

一个品牌id对应多个分类id,比如说小米这个品牌,既可以是手机,也可以是电饭煲等。

所以将分类id也就是上述的cids遍历,新增bid和其对应的cid到数据表中。

3Mapper层

c7a309b22d5e60a803f7f57ad8954208.png

使用注解@Insert编写新增sql语句,同理还有查询、修改和删除语句都可以。

当然也可以使用xml配置sql语句,只不过语句比较简单,所以直接使用注解即可。

三、新增品牌测试

代码编写完毕,做一个测试

65c422cb2f806269c98831cb87a0f740.png

我们在新增品牌页面中填写数据,点击提交按钮,向服务器发送请求。

服务器接收请求后会分别向数据库中的两张表新增对应的数据。

最后

行有不得反求诸己,我是@刘小爱。

白天上班晚上学习,和Java同岁,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值