首页 > 其他分享 >前后端分离开发实现功能实例

前后端分离开发实现功能实例

时间:2023-10-12 10:24:03浏览次数:41  
标签:前后 ResultVo 分离 PersonDto persons 实例 import data wanan

前后端分离开发实现功能实例

需求:后端向前端发送一个集合,前端把数据渲染到页面上

首先定义一个PersonDto

package com.wanan.springbootdemo.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author wanan
 * @date 2023/10/11 16:51
 * @description:
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PersonDto {
    private int id;
    private String name;
    private int age;

}

然后进行TableController的编写

package com.wanan.springbootdemo.controller;

import com.wanan.springbootdemo.dto.PersonDto;
import com.wanan.springbootdemo.util.ResultVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;

/**
 * @author wanan
 * @date 2023/10/11 16:50
 * @description:前端部分为表格渲染.html,前后端分离模式
 */
@RestController
@Slf4j
@CrossOrigin
public class TableController {
    @RequestMapping("/table")
    public ResultVo<ArrayList> register(){
        ArrayList<PersonDto> persons=new ArrayList<>();
        PersonDto person1=new PersonDto(1,"张三",13);
        PersonDto person2=new PersonDto(2,"李四",12);
        PersonDto person3=new PersonDto(3,"张武",14);
        persons.add(person1);
        persons.add(person2);
        persons.add(person3);
//将封装好的persons集合存到RestVo中
        return ResultVo.success(persons);
    }
}

然后进行前端代码的编写

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表格渲染</title>
    <!-- 引入vue -->
    <script src="../js/vue.js"></script>
    <!-- 引入axios -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>


</head>
<body>
    <!-- 一个页面只能由一个vue,所以所有的数据都要放到这个div中 -->
    <div id="root">
        <table border="1">
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>操作</th>
            </tr>
            <tr v-for="(person,index) of persons" :key="index">
                <td>{{person.id}}</td>
                <td>{{person.name}}</td>
                <td>{{person.age}}</td>
                <td><button @click="showInfoHandler(person)">点击</button></td>
                
            </tr>
        </table>   
    </div>
    
    <script>
        // 创建一个vue对象实例
        new Vue({
            el:'#root',//el用于指定当前Vue实例为哪个容器服务,值通常是css服务器(id选择器)
            data:{//data用于存储页面渲染的数据
            //persons中内容从后端获取
                persons:[
                ],
                
            },
            methods:{
                showInfoHandler(person){
                    alert(person.name+"被点击了")
                }
                },
            mounted(){//使用最多,vue创建完成时,可以完全使用vue对象实现数据初始化工具
            axios.post("http://localhost:8080/table/").then(response=>{
                //从后端获取persons,reposonse.data就是ResultVo
                //ResultVo中包含code,message,data,三个元素,data中就是我们存放的东西
                //response.data.data相当于ResultVo.data
                        this.persons=response.data.data
                    })
           },
        })
    </script>
</body>
</html>

ResultVo

package com.wanan.springbootdemo.util;

import lombok.Data;

/**
 * @author wanan
 * @date 2023/9/25 16:49
 * @description:
 */
@Data
public class ResultVo<T> {
    private int code;//响应状态码

    private String message;//状态描述信息

    private T data; //数据类型,泛型(可以是列表对象字符串)

    public  ResultVo() {}

    public ResultVo(int code,String message){
        this.code=code;
        this.message=message;
    }

    //封装常用的静态方法
    public  static <T> ResultVo<T> success (T data){
        ResultVo<T> resultVo =new ResultVo<>();
        resultVo.setCode(200);
        resultVo.setMessage("ok");
        resultVo.setData(data);
        return resultVo;
    }
}

运行前后端文件,可以看到,后端的数据已经成功显示在了前端创建的表格中

image-20231012100646921

标签:前后,ResultVo,分离,PersonDto,persons,实例,import,data,wanan
From: https://www.cnblogs.com/wakenight/p/17758862.html

相关文章

  • 【C#】【IO】【Threading】【实例】工作报表前的本地数据聚合操作
    <工作记录——Report>报表前的数据获取操作是高重复性的,今天差不多完成了脚本,下述是代码:1//Seehttps://aka.ms/new-console-templateformoreinformation2usingSystem.IO;3usingSystem.Threading;45stringSN=@"C0230U25";6stringsourcefold=......
  • Wpf DataGrid设置列标题动态绑定实例
    在WPF中,可以使用DataGrid控件来显示和编辑表格式的数据。要设置DataGrid列标题的动态绑定,可以使用DataGrid的列定义和绑定功能。以下是一个示例,展示如何使用动态绑定设置DataGrid的列标题:在XAML中定义DataGrid控件,并为其定义列:<DataGridAutoGenerateColumns=......
  • 【Django | 开发】分离上线环境与开发环境(多settings配置)
    ......
  • 基于 ACK Fluid 的混合云优化数据访问(二):搭建弹性计算实例与第三方存储的桥梁
    作者:车漾前文回顾:本系列将介绍如何基于ACKFluid支持和优化混合云的数据访问场景,相关文章请参考:基于ACKFluid的混合云优化数据访问(一):场景与架构在前文《场景与架构》中,重点介绍ACKFluid支持混合云数据访问适用的不同应用场景和架构实现。在本文中会重点介绍如何通过ACKFl......
  • shell_条件判断_逻辑运算经典实例
    逻辑开发应用实例限制输入只能是1或2的数字################[root@localhostshell_rpo]#shtest_andor2.shpleaseinputacharf######录入了字符f出现了报错的情况,初步估计是,判断逻辑的1和2加了引号的缘故,表示数字比较test_andor2.sh:第9行:[:f:期待整数表达式......
  • Oracle建立索引前后性能比较
    1.SQL语句createtableC##HR.t_noindexasselect*fromall_objects;createtableC##HR.t_indexedasselect*fromall_objectscreateindexowner_idxonC##HR.t_indexed(owner);select*fromC##HR.t_noindexwhereowner='SYSTEM';select*fromC##H......
  • 前后端分离项目,跨域问题
    跨域问题当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求。如果此时另一个资源不允许其进行跨域资源访问,那么访问就会遇到跨域问题。springboot项目默认不允许处理跨域请求,前端报错:hasbeenblockedbyCORSpolicy:Responsetopreflightrequest......
  • 无涯教程-Meteor - 应用实例
    在本章中,无涯教程将学习如何创建您的第一个Meteor应用程序。第1步-创建应用要创建该应用程序,无涯教程将在命令提示符窗口中运行meteorcreate命令。应用名称为meteorApp。C:\Users\username\Desktop\Meteor>meteorcreatemeteorApp第2步-运行应用无涯教程可以通过......
  • 创建Vue实例方式一(基于核心包)
    基于核心包创建Vue实例核心包就是Vue.jsvue2地址:https://v2.cn.vuejs.org/vue3地址:https://cn.vuejs.org/注意开发版本和生产版本,学习建议使用开发版本  ......
  • Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现分库分表+读写分离
    在工程的application中做sharding-jdbc的分库分表配置,代码如下:sharding.jdbc.datasource.names=ds-master-0,ds-master-1,ds-master-0-slave-0,ds-master-0-slave-1,ds-master-1-slave-0,ds-master-1-slave-1sharding.jdbc.datasource.ds-master-0.type=com.alibaba.dr......