>  기사  >  Java  >  Java Axios 및 Spring 프론트엔드와 백엔드 분리를 위한 매개변수 전달 사양은 무엇입니까?

Java Axios 및 Spring 프론트엔드와 백엔드 분리를 위한 매개변수 전달 사양은 무엇입니까?

PHPz
PHPz앞으로
2023-05-03 21:55:061183검색

1. @RequestParam 주석에 해당하는 axios 매개변수 전송 방법

다음 Spring Java 코드를 예로 들어 보겠습니다. 인터페이스는 POST 프로토콜을 사용하며 허용해야 하는 매개변수는 tsCode, indexCols 및 table입니다. 이 Spring HTTP 인터페이스의 경우 axios는 어떻게 매개변수를 전달해야 합니까? 방법은 몇 개나 있나요? 하나씩 소개해보자.

@PostMapping("/line")
public List<? extends BaseEntity> commonEChart(@RequestParam String tsCode,
                                     @RequestParam String indexCols,
                                     @RequestParam String table){

1.1.params 매개변수 전달(권장)

axios 인스턴스의 매개변수를 사용하여 매개변수를 전송하면 params 매개변수는 백엔드 매개변수에 해당하는 x-www-form-urlencoded 형식으로 포맷됩니다. 매개변수가 하나씩 성공적으로 전송되었습니다. 이것은 제가 모두에게 추천하는 매개변수 전달 방법이기도 합니다!

return request({
    url: &#39;/chart/line&#39;,
    method: &#39;post&#39;,
    params: {   //注意这里的key是params
        tsCode,
        indexCols,
        table
    }
})

1.2.FormData 매개변수 전달

매개변수 형식화를 위해 js의 FormData 객체를 사용할 수도 있고, 매개변수를 수신하기 위해 Spring 백엔드에서 @RequestParam 주석을 올바르게 사용할 수도 있습니다. @RequestParam注解进行参数接收。

let params = new FormData();
params.append(&#39;tsCode&#39;, tsCode);
params.append(&#39;indexCols&#39;, indexCols);
params.append(&#39;table&#39;, table);
return request({
    url: &#39;/chart/line&#39;,
    method: &#39;post&#39;,
    data: params   //注意这里的key是data
})

1.3.qs.stringfy传参

还可以使用qs.stringfy进行参数格式化,同样可以在Spring后端正确的使用@RequestParam注解进行参数接收。

import qs from "qs";

return request({
    url: &#39;/chart/line&#39;,
    method: &#39;post&#39;,
    data: qs.stringify({    //注意这里的key是data
        tsCode,
        indexCols,
        table
    })
})

需要注意的是使用这种方法,需要手动设置header(Content-Type)

const service = axios.create({
    headers: {
        "Content-Type": "application/x-www-form-urlencoded"
    }
});

二、@RequestBody的axios传参方法

java代码部分如下所示,DemoModel类是一个实体类,包含名称tsCode,indexCols,table三个字符串成员变量。接收到的JSON格式参数会自动为demo对象的成员变量赋值。

@PostMapping("/line")
public List<? extends BaseEntity> commonEChart(@RequestBody DemoModel demo){

@RequestBody

return request({
    url: &#39;/chart/line&#39;,
    method: &#39;post&#39;,
    data: {    //注意这里的key是data
        tsCode,
        indexCols,
        table
    }
})

1.3.qs.stringfy 매개변수 전달🎜🎜 매개변수 형식 지정에 qs.stringfy를 사용할 수도 있고 Spring에서 @RequestParam 주석을 올바르게 사용할 수도 있습니다. 백엔드. 매개변수가 수신되었습니다. 🎜rrreee🎜이 방법을 사용하려면 헤더(Content-Type)를 수동으로 설정해야 합니다.🎜rrreee🎜2.@RequestBody의 axios 매개변수 전달 방법🎜🎜DemoModel 클래스는 다음과 같습니다. tsCode, indexCols 및 table이라는 세 가지 문자열 멤버 변수가 있습니다. 수신된 JSON 형식 매개변수는 데모 개체의 멤버 변수에 자동으로 값이 할당됩니다. 🎜rrreee🎜@RequestBody 주석은 기본적으로 JSON 형식으로 데이터를 수신합니다. Axios에서는 기본 데이터 매개변수 전달이 기본적으로 JSON 데이터 형식을 사용하므로 추가적인 특수 처리가 필요하지 않습니다. 🎜아아아아

위 내용은 Java Axios 및 Spring 프론트엔드와 백엔드 분리를 위한 매개변수 전달 사양은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제