文章目录

  • 新增自由行
    • 前台代码
    • 弹出新增窗口
    • 输入校验
    • 提交表单数据
    • 后台代码
    • 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>

美年旅游_自由行_新增自由行相关推荐

  1. 美年旅游_自由行_编辑自由行

    文章目录 前台代码 绑定单击事件 弹出编辑窗口回显数据 发送请求更改数据 后台代码 Controller 服务接口 服务实现类 Dao接口 Mapper映射文件 功能分为两个部分来做 1:编辑自由行( ...

  2. 美年旅游_套餐管理_定时任务组件Quartz

    文章目录 补充上前面没有的配置 先配置这些 2.4. 完善文件上传,Redis存储图片名称 美年旅游_套餐管理_定时任务组件Quartz 4.1. Quartz介绍 Quartz 入门案例 4.2. ...

  3. [JS 分析] 天_眼_查 字体文件

    0. 参考 js分析 猫_眼_电_影 字体文件 @font-face 1. 分析 1.1 定位目标元素 1.2 查看网页源代码 1.3 requests 请求提取得到大量错误信息 对比猫_眼_电_影抓 ...

  4. 复习Collection_迭代器使用细节_泛型_综合案例

    Collection_迭代器使用细节_泛型_综合案例 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 集合:集合是java中提供的一种 ...

  5. php验证码手册,验证码_专题_帮助文档_Thinkphp手册

    验证码_专题_帮助文档_Think Think/Verify类可以支持验证码的生成和验证功能. 生成验证码 下面是最简单的方式生成验证码: seover" style=" marg ...

  6. Day06_动态组件_插槽_自定义指令_tabbar案例

    Day06_动态组件_插槽_自定义指令_tabbar案例 文章目录 Day06_动态组件_插槽_自定义指令_tabbar案例 知识点自测 今日学习目标 1. 组件进阶 1.0 组件进阶 - 动态组件 ...

  7. 索引_期刊_影响因子_分区

    索引_期刊_影响因子_分区 主要介绍的是索引及期刊.影响因子.分区在文章末尾附有网址,可以参考网址中内容. 国际 SCI.EI.ISTP是世界三大重要检索系统,其收录文章的状况是评价国家.单位和科研人 ...

  8. java通讯录课程设计_java课程设计_通讯录_通讯簿.doc

    java课程设计_通讯录_通讯簿.doc 还剩 45页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: impor ...

  9. 停车场管理_充电桩_停车收费_物业管理_源码

    [声明]:本项目里面的代码没有任何私jar包,本来就是开源项目,代码没有丢包或者故意丢代码导致项目报错的情况,但是不保证能商用,个人拿来作为入门研究和快速二次开发是个不错的选择!这项目代码肯定能跑起来 ...

最新文章

  1. CodeForces - 123B Squares(简单几何+旋转坐标系)
  2. 4t硬盘实际容量是多少_SMR硬盘到底能用不?点进来看看避免踩雷
  3. geotools绘制椭圆API
  4. Java Timetask 无缘无故停止
  5. SVN客户端的使用方法
  6. 苹果服务器文件夹共享权限设置,苹果设备如何访问 Windows 文件共享?
  7. CNTV视频回看下载地址
  8. java 编写metro风格_纯Javascript实现Windows 8 Metro风格实现
  9. 什么是微信公众号矩阵模式?
  10. ubuntu11.10输入法推荐-ibus-sunpinyin
  11. 对话三星张代君:Bixby到底与Siri有什么不同?
  12. 2020年拼多多数据分析一面
  13. Android面试之计算机网络基础
  14. 展开阅读全文代码html,展开阅读全文 js 爬虫操作
  15. 对使用字符指针变量和字符数组的讨论
  16. 使用香橙派zero2及其他单网口开发板搭建UU加速盒
  17. SVN E170001:unable to connect to a repository at url
  18. Win10字体大小调整 资源管理器字体 浏览器标签页导航栏字体变大
  19. VIL VIH VOH VOL解释
  20. r数据处理与echart作图总结

热门文章

  1. 2019写给对象的话_2019@对象的暖心说说简短的 适合艾特对象的说说一句话超甜...
  2. Vue Vue项目里面使用的$refs与$ref是什么意思,有什么用?
  3. word无法保存html文件,【修复】Word“文件发生错误”,无法保存文件
  4. MSVCR110.dll文件找不到修复
  5. 到底什么是数字化生意表达?
  6. 行业应用 | 大数据对新闻传播的影响 大数据
  7. Python绘图库大集合
  8. 散列表、LinkedHashMap源码分析
  9. Windows 系统镜像下载地址
  10. (原创、不是重复文章)xxx GiB reserved in total by PyTorch的问题