Vue表单提交与数据存储

学习内容来源:视频p5
书接上文

对页面重新命名

将之前的 Page1 Page2 进行重新命名,使其具有实际意义
Page1 → BookManage ; Page2 → AddBook
并且 /router/index.js 中配置页面信息
在这里插入图片描述

在这里插入图片描述

选择组件

一般填写内容都采用 Form 表单组件,选择一个复制粘贴即可
精简组件,留下需要的即可
在这里插入图片描述
表单通过 :model 绑定创建对象的属性,:ref 属性相当于表单名称
在这里插入图片描述
在这里插入图片描述

通过 :rule 属性规定填写格式
以预设的 name 规则为例

rules: {
     name: [
         { required: true, message: '请输入活动名称', trigger: 'blur' },
         { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
     ],
 }
属性含义
required是否为必填
message空缺时提示信息
trigger何时触发校验,blur意为鼠标没有聚焦时
min/max字段最小/最大长度
在表单的标签栏通过 prop 绑定具体规则

在这里插入图片描述
可以通过新增一个按钮来显示是否成功接收到了填写的数据
在这里插入图片描述
配置一下点击事件在这里插入图片描述
即可在控制台查看在这里插入图片描述

后端对接

测试接口

bookRepository 所继承的JPA自带了一个 save() 方法,可以直接传入对象存入数据库,并且返回一个从数据库读出的数据,此处可以打印以测试是否存入成功
在这里插入图片描述
但要注意,如果数据库中 id 是自增属性,而且后端没有手动赋值,则需要在实体类上标注此属性自增,否则会报错
在这里插入图片描述
需要在实体类添加一个自增注解
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
证明存入成功

设置接口

在Handler目录下创建存储数据接口
在这里插入图片描述
将传递来的对象映射为java对象,调用之前测试的 save() 方法进行存储

前端调用

在提交对应的函数下调用 axios 封装好的函数

axios.post("http://localhost:8181/book/save",this.ruleForm).then(function (resp) {
    if (resp.data == "success"){
        alert("上传成功");
    }else{
        alert("上传失败");
    }
})

在这里插入图片描述
到数据库查看,确实已经上传成功
在这里插入图片描述
可以选择一个合适的组件来显示报告信息
在这里插入图片描述
注意使用外层 this 指针就行,其余仿照官方文档即可
在这里插入图片描述
也可以选择添加成功后跳转至查询页面,进一步验证是否添加成功

if (resp.data == "success"){
    _this.$alert("《"+_this.ruleForm.name+"》添加成功", '成功', {
        confirmButtonText: '确定',
        callback: action => {
            _this.$router.push("/BookMange");
        }
    });
}else{
    _this.$message.error("添加失败");
}

最终效果
请添加图片描述

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue提交到后端的过程可以分为以下几个步骤: 1. 在Vue组件中定义数据提交方法。 2. 在中绑定数据和事件,将用户填写的数据绑定到数据中。 3. 在提交方法中,将数据作为参数,调用后端接口进行数据提交。 4. 在后端接口中,接收前端提交数据,进行数据处理和存储。 具体实现可以参考以下步骤: 1. 在Vue组件中定义数据提交方法: ``` <template> <div> <form> <label>姓名:</label> <input type="text" v-model="formData.name"> <br> <label>性别:</label> <input type="radio" value="男" v-model="formData.gender">男 <input type="radio" value="女" v-model="formData.gender">女 <br> <label>爱好:</label> <select v-model="formData.hobbies" multiple> <option value="篮球">篮球</option> <option value="足球">足球</option> <option value="乒乓球">乒乓球</option> </select> <br> <button @click.prevent="submitForm">提交</button> </form> </div> </template> <script> export default { data() { return { formData: { name: '', gender: '', hobbies: [] } } }, methods: { submitForm() { // 调用后端接口提交数据 // ... } } } </script> ``` 2. 在中绑定数据和事件,将用户填写的数据绑定到数据中: 在上面的代码中,我们使用了v-model指令将元素和formData中的数据进行了双向绑定。这样,当用户在中填写数据时,formData中的数据也会随之改变。 3. 在提交方法中,将数据作为参数,调用后端接口进行数据提交: 在上面的代码中,我们定义了一个submitForm方法,当用户点击提交按钮时,会调用这个方法。在这个方法中,我们可以将formData作为参数,调用后端接口进行数据提交。具体的接口调用方式可以根据后端接口的实现方式进行调整。 4. 在后端接口中,接收前端提交数据,进行数据处理和存储: 在后端接口中,我们可以使用相应的框架或库来接收前端提交数据,并进行数据处理和存储。具体的实现方式可以根据后端框架或库的文档进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值