springboot vue完成编辑页面发送接口请求功能

  1. 准备工作
    首先,需要准备好以下环境和工具:

  2. JDK 1.8及以上版本

  3. Maven
  4. Node.js
  5. Vue CLI:可以通过npm安装:npm install -g vue-cli

  6. 创建项目
    使用Vue CLI来创建一个基础的Vue.js项目:

vue init webpack vue-project

执行上述命令会创建一个名为“vue-project”的Vue.js项目。完成后,进入项目的根目录,通过命令行方式启动服务:

npm run dev
  1. 编写前端页面
    在“vue-project”的src目录下新建一个“views”目录,在该目录下新建一个“edit.vue”文件。编写前端编辑页面的代码。
<template>
  <div>
    <div>
      <label>标题:</label>
      <input type="text" v-model="title" placeholder="请输入标题"/>
    </div>
    <div>
      <label>内容:</label>
      <textarea v-model="content" placeholder="请输入内容"></textarea>
    </div>
    <div>
      <button @click="submit">提交</button>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      title: '',
      content: ''
    }
  },
  methods: {
    submit() {
      let params = {
        title: this.title,
        content: this.content
      }
      this.$http.post('/api/save', params).then(res => {
        console.log(res.data);
      });
    }
  }
}
</script>
  1. 编写后端接口
    使用Spring Boot框架来编写后端接口。在Spring Boot项目中引入以下依赖:
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.7</version>
</dependency>

在Spring Boot项目中编写一个Controller来处理请求:

@RestController
@RequestMapping("/api")
public class ApiController {
  @PostMapping("/save")
  public String save(@RequestBody Map<String, String> params) {
    String title = params.get("title");
    String content = params.get("content");
    // TODO:保存数据到数据库
    return "保存成功";
  }
}
  1. 配置跨域访问
    由于前后端分离,前端代码会跑在不同的端口上,因此需要配置跨域访问。在Spring Boot的启动类上添加如下配置:
@SpringBootApplication
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

  @Bean
  public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
      @Override
      public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
          .allowedOrigins("*")
          .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
          .allowedHeaders("*");
      }
    };
  }
}
  1. 启动应用程序
    在命令行中,进入Spring Boot项目的根目录,执行以下命令:
mvn clean package

执行以上命令会编译打包程序,完成后,通过以下命令启动程序:

java -jar target/{project_name}.jar

其中{project_name}为项目的名称。

  1. 测试
    在浏览器中访问http://localhost:8080/,即可访问前端页面,尝试在前端页面中输入内容,点击“提交”按钮,发送POST请求到后端,后端会返回一个“保存成功”的字符串,表示数据保存完成。

示例1:使用session来模拟数据保存。
下面的示例中,仅在后端使用session模拟了一个简单的保存流程,用于说明整个系统的工作流程。

@RestController
@RequestMapping("/api")
public class ApiController {
  @Autowired
  private HttpSession httpSession;

  @PostMapping("/save")
  public String save(@RequestBody Map<String, String> params) {
    String title = params.get("title");
    String content = params.get("content");
    // TODO:保存数据到数据库
    httpSession.setAttribute("title", title);
    httpSession.setAttribute("content", content);
    return "保存成功";
  }

  @GetMapping("/get")
  public Map<String, String> get() {
    Map<String, String> result = new HashMap<>();
    result.put("title", (String) httpSession.getAttribute("title"));
    result.put("content", (String) httpSession.getAttribute("content"));
    return result;
  }
}

示例2:使用Spring Data JPA来保存数据。
下面的示例中,使用了Spring Data JPA来将数据保存到Mysql数据库。

<!-- pom.xml -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
</dependency>
// application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
// Post.java
@Entity
public class Post {
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;
  private String title;
  private String content;

  // 省略Getter/Setter

  public Post(String title, String content) {
    this.title = title;
    this.content = content;
  }
}
// PostRepository.java
public interface PostRepository extends CrudRepository<Post, Long> {
}
// ApiController.java
@RestController
@RequestMapping("/api")
public class ApiController {
  @Autowired
  private PostRepository postRepository;

  @PostMapping("/save")
  public String save(@RequestBody Map<String, String> params) {
    String title = params.get("title");
    String content = params.get("content");
    Post post = new Post(title, content);
    postRepository.save(post);
    return "保存成功";
  }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot vue完成编辑页面发送接口请求功能 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vuejs开发环境搭建及热更新【推荐】

    Vuejs开发环境搭建及热更新攻略 1. 安装Node.js和npm 在开始Vuejs的开发之前,我们需要先安装Node.js。这是一款基于Chrome V8引擎的JavaScript运行环境。 在安装Node.js的时候,会自动安装npm,npm是一个可以解决Node.js插件之间依赖的包管理器。可以通过这个命令来检查是否安装成功: node -v //查…

    Vue 2023年5月28日
    00
  • Vuex中状态管理器的使用详解

    Vuex中状态管理器的使用详解 什么是Vuex Vuex是一个专门为Vue.js设计的状态管理库,用于集中管理应用程序的所有组件的状态,使得数据流更加可控易管理。 为什么使用Vuex 在大型项目中,随着Vue组件越来越多,各个组件之间的数据传递变得复杂而困难。此时,使用Vuex可以帮助我们更好地组织数据、管理状态,提高代码的可维护性。 Vuex基本构成 Vu…

    Vue 2023年5月28日
    00
  • Vue.js开发环境搭建

    Vue.js开发环境搭建完整攻略 Vue.js是目前前端开发中非常热门的一种JavaScript框架,它可以帮助我们更高效地开发出复杂的单页面应用。在使用Vue.js开发之前,需要先配置好开发环境,本攻略将介绍如何搭建Vue.js开发环境。 步骤一:安装Node.js Vue.js是运行在Node.js环境下的,因此首先需要安装Node.js。在Node.j…

    Vue 2023年5月27日
    00
  • Vue表单及表单绑定方法

    Vue表单及表单绑定方法是Vue框架中重要的一部分,用于维护表单中输入数据的状态,并将这些状态反映在视图中。本文将介绍Vue表单及表单绑定方法的完整攻略。 1. Vue表单基本概念 在Vue中表单通常指用户可以输入的数据。表单通常由各种表单控件组成,例如文本框、下拉框、单选框、复选框等。当用户在表单控件中输入数据时,Vue会自动建立起该表单的数据模型。 Vu…

    Vue 2023年5月27日
    00
  • vue3基础知识剖析

    Vue3基础知识剖析 在本文中,我们将讲解Vue3的基础概念和主要特性,包括常用的指令、组件和钩子函数,以及Vue3的响应式系统和组合式API。同时我们也将介绍一些趣味性的示例来帮助理解和运用这些概念。 指令 在Vue3中,指令是Vue模板语法中最常用的一种标记,用于绑定表达式或动态值到DOM元素上,从而实现交互和动态更新。常见的指令有v-bind、v-fo…

    Vue 2023年5月27日
    00
  • 浅谈Vue+Ant Design form表单的一些坑

    浅谈Vue+Ant Design form表单的一些坑 前言 在Vue结合Ant Design使用form表单时,可能会遇到一些坑。本攻略将会详细讲解如何解决这些坑,并提供一些示例说明。 Ant Design form表单-基本使用 首先,在使用Ant Design form表单时,我们需要先安装Ant Design of Vue。安装命令如下: npm i…

    Vue 2023年5月28日
    00
  • vue 中简单使用mock的示例代码详解

    下面是“vue 中简单使用mock的示例代码详解”的完整攻略。 1、什么是Mock? Mock是一种基于规则自动生成数据模拟的工具,常用于代码调试以及前后端分离开发环境中数据接口的测试。Mock通过配置生成模拟数据,并可以实现前后端分离开发流程中前端提前获取数据模型,更好地完成页面的实现。 2、Mock.js介绍 Mock.js是一款前后端分离开发中常用的模…

    Vue 2023年5月28日
    00
  • 浅谈使用mpvue开发小程序需要注意和了解的知识点

    浅谈使用mpvue开发小程序需要注意和了解的知识点 什么是mpvue mpvue 是一个使用 Vue.js 开发小程序的神器,它基于 Vue.js 核心,使用了小程序原生 API, 可以使开发者使用 Vue.js 开发小程序,并且代码可以进行复用。由此得益,我们可以在小程序开发中享受到 Vue.js 带来的双向绑定、过滤器、组件化等便捷的开发体验。 注意点 …

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部