实现文件的上传下载:
前端代码:
对文件的操作就是对流的操作。
上传文件的后端代码,需要注意MultipartFile的名字必须与前端相对:
为文件存储位置进行动态设置,配置application.xml
在CommonController中设置属性读取配置文件。
完善上传代码,防止文件名重复,使用UUID+文件后缀方式为图片命名。
实现下载功能:
前端代码如下,上传成功后回调,发送get请求下载图片文件。
后端代码:
通过输入流获取文件,通过输出流显示文件。
实现新增菜品功能:
创建DishFlavor实体类,mapper,service,serviceImpl,dishController类。
先实现菜品列表显示的功能。
前端请求:
在CategoryController中添加方法。
显示效果:
看到前端请求和负载:
可以看到flavors属性与实体类dish中的属性无法对应。创建DTO类对flavors属性进行映射。
在DishService中创建方法,添加菜品到dish表和dish_flavor表,由于处理多个表,添加事务注解,并在启动类增加事务管理注解。
controller中调用:
实现菜品分页:
后端代码:
前端效果,可以看到菜品分类没有返回,原因是返回的类型为Dish,Dish中只有菜品分类的id,而没有菜品名,跟前端无法对应,所以没有显示值。
解决办法:考虑使用DTO类,即DishDto对属性进行扩展,重新显示到前端页面。
修改后的后端代码:
实现修改菜品信息:
查看前端接口:
根据dish的id查找到dish的基本信息和对应的口味,处理页面回显(点击修改按钮,文本框出现菜品的信息和口味信息)。
实现后端接口代码:
实现点击保存,修改菜品表和口味表:
dishServiceImpl新增方法如下
前端请求
后端响应