前后端交互:axios 和 json;springboot 和 vue

vue

准备的

html 复制代码
<template>
    <div>
      <button @click="sendData">发送数据</button>
      <button @click="getData">接收</button>
      <button @click="refresh">刷新</button>
      <br>
      <ul v-if="questions">
        <li v-for="(question ,index) in questions" :key="index">
          <p>{{ question.problem }}</p>
          <p>{{ question.answer }}</p>
        </li>
      </ul>
    </div>
  </template>
  
  <script setup>
  import { ref } from 'vue';
  import axios from 'axios';
  
  const myObject = ref({
    name: 'John',
    age: 30,
    city: 'New York'
  });
  const questions =ref()
  const refresh =()=>{
    questions.value=null;
  }
  const sendData = async () => {
    try {
      const jsonString = JSON.stringify(myObject.value);
      console.log(jsonString);
      const response = await axios.post('http://localhost:8081/test/login', jsonString, {
        headers: {
          'Content-Type': 'application/json'
        }
      });
      console.log('响应:', response.data);
    } catch (error) {
      console.error('发送数据时出错:', error);
    }
  };
  const getData = async () => {
    try {
  
      const response = await axios.get('http://localhost:8081/test/reviewmore');
      questions.value =response.data;
      console.log('响应:', response.data);
  
    } catch (error) {
      console.error('发送数据时出错:', error);
    }
  };
  </script>
  
html 复制代码
<template>
    <div>
        <button @click="sendMsg">发送msg</button>
        <button @click="getUser">获取一个User</button>
        <ul v-if="users">
            <li v-for="(user ,index) in users" :key="index">
                <p>{{ user.name }}</p>
                <p>{{ user.age }}</p>
                <p>{{ user.city }}</p>
            </li>
        </ul>
    </div>
</template>

<script setup>
    import axios from 'axios';
    import {ref} from 'vue';
    const msg='hello 后端';
    const sendMsg = async () => {
    try {
      const jsonString = JSON.stringify(msg);
      console.log(jsonString);
      const response = await axios.post('http://localhost:8081/teach/sendmsg', jsonString, {
        headers: {
          'Content-Type': 'application/json'
        }
      });
      console.log('响应:', response.data);
    } catch (error) {
      console.error('发送数据时出错:', error);
    }
  };
  const users =ref();
  const getUser = async () => {
    try {
      const response = await axios.get('http://localhost:8081/teach/getusers');
      console.log('响应:', response.data);
        users.value=response.data;
    } catch (error) {
      console.error('发送数据时出错:', error);
    }
  };
</script>

springboot

准备的

java 复制代码
package com.example.demo.controller;

import com.example.demo.pojo.Question;
import com.example.demo.pojo.User;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

@CrossOrigin
@RequestMapping("/test") // 将公共路径添加到类上
@RestController
public class DemoController {

    @PostMapping("/login")
    public String handleLoginRequest(@RequestBody User user) {
        // 这里可以对接收到的User对象进行处理
        System.out.println("接收到的用户信息:" + user.getName() + ", " + user.getAge() + ", " + user.getCity());

        // 返回一个简单的响应
        return "成功接收到用户信息";
    }

    @GetMapping("/get/{id}") // 在路径中定义了一个名为"id"的路径参数
    public String handleGetRequest(@PathVariable("id") String id) {
        // 根据接收到的路径参数进行条件查询逻辑
        // 假设这里根据id查询某个结果,这里只是简单示例
        if ("1".equals(id)) {
            System.out.println("查询到ID为1的结果");
            return "查询到ID为1的结果";
        } else {
            System.out.println("未查询到符合条件的结果");
            return "未查询到符合条件的结果";
        }
    }
    @GetMapping("/review")
    public Question handleReviewRequest(){
        return new Question("这是一个问题","这是一个答案");
    }
    @GetMapping("/reviewmore")
    public List<Question> handleReviewMoreRequest() {
        List<Question> questions = new ArrayList<>();
        questions.add(new Question("问题1", "答案1"));
        questions.add(new Question("问题2", "答案2"));
        questions.add(new Question("问题3", "答案3"));
        // 添加更多问题

        return questions;
    }
}

上课敲的

java 复制代码
package com.example.demo.controller;

import com.example.demo.pojo.User;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

@CrossOrigin
@RequestMapping("/teach") // 将公共路径添加到类上
@RestController
public class TeachController {
    @PostMapping("/sendmsg")
    public String handleLoginRequest(@RequestBody String msg) {
        System.out.println(msg);
        return "hello 前端";
    }
    @GetMapping("/getusers")
    public List<User> handleReviewRequest() {
        List<User> users = new ArrayList<>();
        users.add(new User("张三", 25,"北京市"));
        users.add(new User("李四", 30,"唐山"));
        users.add(new User("王五", 35,"天际"));
        return users;
    }

}
相关推荐
毕设源码-小云学姐5 分钟前
计算机毕业设计springboot网上招聘系统 基于SpringBoot的在线人才对接平台设计与实现 SpringBoot框架下的数字化求职招聘服务系统开发
spring boot·后端·课程设计
wefly201742 分钟前
纯前端架构深度解析:jsontop.cn,JSON 格式化与全栈开发效率平台
java·前端·python·架构·正则表达式·json·php
weyyhdke2 小时前
springboot和springframework版本依赖关系
java·spring boot·后端
jeCA EURG3 小时前
Spring Boot 2.7.x 至 2.7.18 及更旧的版本,漏洞说明
java·spring boot·后端
莫物4 小时前
vue过滤表格数据导致的索引错乱问题
前端·javascript·vue.js
李庆政3704 小时前
Reactor-core 响应式编程 spring-boot-starter-webflux
java·spring boot·reactor·响应式编程·reactor-core
geBR OTTE4 小时前
SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)
spring boot·tomcat·mybatis
Java水解5 小时前
一篇文章让你彻底弄懂Spring Boot 自动配置原理详解
spring boot·后端
MegaDataFlowers5 小时前
什么是JSON
json
Zzxy5 小时前
Redis集成与基础操作
spring boot·redis