front/JS

[JS/jQuery] ajax ์œผ๋กœ ๋ฐฐ์—ด์„ controller ๋กœ ๋„˜๊ธฐ๊ธฐ

๋ฐฐ๊ณ ํŒŒ์š” 2024. 10. 21. 18:00
728x90

 



๐Ÿ“ JS

// ์ž์‹ ๋ฐฐ์—ด ์ƒ์„ฑ
var testArr = [];

// for ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ๋ฐฐ์—ด์— ์ถ”๊ฐ€
for (let i = 0; i < ids.length; i++) {
    // ๊ฐ์ฒด ์ƒ์„ฑ
    var obj = {
                id: ids[i],
                name: names[i]
                };
    // ๋ฐฐ์—ด์— ์ถ”๊ฐ€
    testArr.push(obj);
}

var testObj = {
                parId: 'par',
                childArr: testArr
        	  };

$.ajax({
    url: '/api/requestBodyTest',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify(testObj),
    success: function (data) {
        console.log(data);
    },
    error: function (jqXHR, textStatus, errorThrown) {
        console.error('Error:', textStatus, errorThrown);
    }
});

 

 

 

 

๐Ÿ“ model

public class MyModel {
    private String parId;
    private List<Child> childArr;

    // Getters ๋ฐ Setters

    public String getParId() {
        return parId;
    }

    public void setParId(String parId) {
        this.parId = parId;
    }

    public List<Child> getChildArr() {
        return childArr;
    }

    public void setChildArr(List<Child> childArr) {
        this.childArr = childArr;
    }
}

public class Child {
    private String id;
    private String name;

    // Getters ๋ฐ Setters
}

 

 

 

 

 



๐Ÿ“ controller

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

// @RestController // ์ด๊ฑฐ ์•ˆ ์“ฐ๊ณ  ํ•ด๋‹น ๋งค์„œ๋“œ์— @ResponseBody ๋„ฃ์–ด๋„ ๋จ!
@RequestMapping("/api")
public class MyController {
	
    @ResponseBody
    @PostMapping("/requestBodyTest")
    public ResponseEntity<MyModel> requestBodyTest(@RequestBody MyModel model) {
        // ๋ชจ๋ธ์„ ๋กœ๊ทธ๋กœ ์ถœ๋ ฅ (๋””๋ฒ„๊น… ์šฉ๋„)
        System.out.println(model);
        
        // ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ์‘๋‹ต ๋ฐ˜ํ™˜
        return ResponseEntity.ok(model);
    }
    
    /////// ์ถ”๊ฐ€ ///////
    @ResponseBody
    @PostMapping("/requestBodyChildArrListTest")
    public String requestBodyChildArrListTest(@RequestBody ArrayList<childVO> childVOList) {
        return childVOList.toString(); 
        // [ChildVO[id=1, name=test1], ChildVO[id=2, name=test2] ``` ]
    }
}

์ถœ์ฒ˜ : 

 

 

 


๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ์œ„ํ•œ ๋ธ”๋กœ๊ทธ ์ž…๋‹ˆ๋‹ค. 

์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”! 

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

728x90