美年旅游_自由行_新增自由行
文章目录
- 新增自由行
- 前台代码
- 弹出新增窗口
- 输入校验
- 提交表单数据
- 后台代码
- Controller
- 服务接口
- 服务实现类
- Dao接口
- Mapper映射文件
新增自由行
1:前台代码
(1)弹出新增窗口
(2)输入校验
(3)提交表单数据
• ajax提交
axios.post("/travelItem/add.do",this.formData).then((response)=> {
})
2:后台代码
(1)TravelItemController.java (控制器,meinian_web里面实现)
(2)TravelItemService.java(服务接口,meinian_interface里面实现)
(3)TravelItemServiceImpl.java(服务实现类,meinian_service里面实现)
(4)TravelItemDao.java(Dao接口,meinian_dao里面实现)
(5)TravelItemDao.xml(Mapper映射文件)
前台代码
弹出新增窗口
页面中已经提供了新增窗口,只是处于隐藏状态。只需要将控制展示状态的属性dialogFormVisible改为true就可以显示出新增窗口。
新建按钮绑定的方法为handleCreate,所以在handleCreate方法中修改dialogFormVisible属性的值为true即可。同时为了增加用户体验度,需要每次点击新建按钮时清空表单输入项。
// 重置表单
resetForm() {this.formData = {};
},
// 弹出添加窗口
handleCreate() {this.resetForm();this.dialogFormVisible = true;
},
输入校验
rules: {//校验规则code: [{ required: true, message: '项目编码为必填项', trigger: 'blur' }],name: [{ required: true, message: '项目名称为必填项', trigger: 'blur' }]
}
提交表单数据
点击新增窗口中的确定按钮时,触发handleAdd方法,所以需要在handleAdd方法中进行完善。
//添加
handleAdd () {//校验表单输入项是否合法this.$refs['dataAddForm'].validate((valid) => {if (valid) {//表单数据校验通过,发送ajax请求将表单数据提交到后台//this.formData 是表单的数据axios.post("/travelItem/add.do",this.formData).then((response)=> {//隐藏新增窗口this.dialogFormVisible = false;//判断后台返回的flag值,true表示添加操作成功,false为添加操作失败//返回一个对象给前端判断 后台控制层的代码//return new Result(true,MessageConstant.ADD_TRAVELITEM_SUCCESS);if(response.data.flag){// resp.data 获得 ==>> result == {flag:true,message:'',data:''}this.$message({message: response.data.message,type: 'success'});}else{this.$message.error(response.data.message);}}).finally(()=> {// 刷新页面(列表查询)this.findPage();});} else {this.$message.error("表单数据校验失败");return false;}});
},
//分页查询
findPage() {},
回调函数的结果
后台代码
Controller
在 meinian_web 工程中创建 TravelItemController
package com.atguigu.controller;import com.alibaba.dubbo.config.annotation.Reference;
import com.atguigu.constant.MessageConstant;
import com.atguigu.entity.Result;
import com.atguigu.pojo.TravelItem;
import com.atguigu.service.TravelItemService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController//组合注解 @Controller + @ResponseBody
@RequestMapping("/travelItem")
public class TravelItemController { 远程调用服务@Referenceprivate TravelItemService travelItemService;//新增方法方法返回值为工具类Result 封装了 flag message data//表单项参数名称必须和实体对象的属性名称一致,提供对应set方法,框架创建对象并封装数据。@RequestMapping("/add")public Result add(@RequestBody TravelItem travelItem){//接收数据用requestBody注解 因为前端是放在请求体里的try {//可能会失败所以要处理异常travelItemService.add(travelItem);//ctrl + ait + t 生成try... catch//返回一个对象给前端判断return new Result(true,MessageConstant.ADD_TRAVELITEM_SUCCESS);} catch (Exception e) {e.printStackTrace();return new Result(false, MessageConstant.ADD_TRAVELITEM_FAIL);}}}
服务接口
在 meinian_interface 工程中创建 TravelItemService 接口
package com.atguigu.service;import com.atguigu.pojo.TravelItem;public interface TravelItemService {void add(TravelItem travelItem);
}
服务实现类
在 meinian_service 工程中创建 TravelItemServiceImpl 实现类
package com.atguigu.service.impl;import com.alibaba.dubbo.config.annotation.Service;
import com.atguigu.dao.TravelItemDao;
import com.atguigu.pojo.TravelItem;
import com.atguigu.service.TravelItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;@Service(interfaceClass = TravelItemService.class)//发布服务,注册到zk中心
@Transactional//声明式事务,所有方法都增加事务
public class TravelItemServiceImpl implements TravelItemService {@Autowiredprivate TravelItemDao travelItemDao;@Overridepublic void add(TravelItem travelItem) {travelItemDao.add(travelItem);}
}
Dao接口
在meinian_dao工程中创建TravelItemDao接口,本项目是基于Mybatis的Mapper代理技术实现持久层操作,故只需要提供接口和Mapper映射文件,无须提供实现类
package com.atguigu.dao;import com.atguigu.pojo.TravelItem;public interface TravelItemDao {void add(TravelItem travelItem);
}
Mapper映射文件
在meinian_dao 工程中创建 TravelItemDao.xml 映射文件,需要和 TravelItemDao 接口在同一目录下
新建文件夹的时候,一定一定要注意,在 resources 文件夹下面新建文件夹
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.dao.TravelItemDao"><!--新增--><!--由于设置别名包,可以省略包名,直接写类名首字母小写 parameterType="travelItem"--><insert id="add" parameterType="travelItem">insert into t_travelitem(code,name,sex,age,price,type,remark,attention)values(#{code},#{name},#{sex},#{age},#{price},#{type},#{remark},#{attention})</insert>
</mapper>
美年旅游_自由行_新增自由行相关推荐
- 美年旅游_自由行_编辑自由行
文章目录 前台代码 绑定单击事件 弹出编辑窗口回显数据 发送请求更改数据 后台代码 Controller 服务接口 服务实现类 Dao接口 Mapper映射文件 功能分为两个部分来做 1:编辑自由行( ...
- 美年旅游_套餐管理_定时任务组件Quartz
文章目录 补充上前面没有的配置 先配置这些 2.4. 完善文件上传,Redis存储图片名称 美年旅游_套餐管理_定时任务组件Quartz 4.1. Quartz介绍 Quartz 入门案例 4.2. ...
- [JS 分析] 天_眼_查 字体文件
0. 参考 js分析 猫_眼_电_影 字体文件 @font-face 1. 分析 1.1 定位目标元素 1.2 查看网页源代码 1.3 requests 请求提取得到大量错误信息 对比猫_眼_电_影抓 ...
- 复习Collection_迭代器使用细节_泛型_综合案例
Collection_迭代器使用细节_泛型_综合案例 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 集合:集合是java中提供的一种 ...
- php验证码手册,验证码_专题_帮助文档_Thinkphp手册
验证码_专题_帮助文档_Think Think/Verify类可以支持验证码的生成和验证功能. 生成验证码 下面是最简单的方式生成验证码: seover" style=" marg ...
- Day06_动态组件_插槽_自定义指令_tabbar案例
Day06_动态组件_插槽_自定义指令_tabbar案例 文章目录 Day06_动态组件_插槽_自定义指令_tabbar案例 知识点自测 今日学习目标 1. 组件进阶 1.0 组件进阶 - 动态组件 ...
- 索引_期刊_影响因子_分区
索引_期刊_影响因子_分区 主要介绍的是索引及期刊.影响因子.分区在文章末尾附有网址,可以参考网址中内容. 国际 SCI.EI.ISTP是世界三大重要检索系统,其收录文章的状况是评价国家.单位和科研人 ...
- java通讯录课程设计_java课程设计_通讯录_通讯簿.doc
java课程设计_通讯录_通讯簿.doc 还剩 45页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: impor ...
- 停车场管理_充电桩_停车收费_物业管理_源码
[声明]:本项目里面的代码没有任何私jar包,本来就是开源项目,代码没有丢包或者故意丢代码导致项目报错的情况,但是不保证能商用,个人拿来作为入门研究和快速二次开发是个不错的选择!这项目代码肯定能跑起来 ...
最新文章
- CodeForces - 123B Squares(简单几何+旋转坐标系)
- 4t硬盘实际容量是多少_SMR硬盘到底能用不?点进来看看避免踩雷
- geotools绘制椭圆API
- Java Timetask 无缘无故停止
- SVN客户端的使用方法
- 苹果服务器文件夹共享权限设置,苹果设备如何访问 Windows 文件共享?
- CNTV视频回看下载地址
- java 编写metro风格_纯Javascript实现Windows 8 Metro风格实现
- 什么是微信公众号矩阵模式?
- ubuntu11.10输入法推荐-ibus-sunpinyin
- 对话三星张代君:Bixby到底与Siri有什么不同?
- 2020年拼多多数据分析一面
- Android面试之计算机网络基础
- 展开阅读全文代码html,展开阅读全文 js 爬虫操作
- 对使用字符指针变量和字符数组的讨论
- 使用香橙派zero2及其他单网口开发板搭建UU加速盒
- SVN E170001:unable to connect to a repository at url
- Win10字体大小调整 资源管理器字体 浏览器标签页导航栏字体变大
- VIL VIH VOH VOL解释
- r数据处理与echart作图总结
热门文章
- 2019写给对象的话_2019@对象的暖心说说简短的 适合艾特对象的说说一句话超甜...
- Vue Vue项目里面使用的$refs与$ref是什么意思,有什么用?
- word无法保存html文件,【修复】Word“文件发生错误”,无法保存文件
- MSVCR110.dll文件找不到修复
- 到底什么是数字化生意表达?
- 行业应用 | 大数据对新闻传播的影响 大数据
- Python绘图库大集合
- 散列表、LinkedHashMap源码分析
- Windows 系统镜像下载地址
- (原创、不是重复文章)xxx GiB reserved in total by PyTorch的问题