programing

Spring MVC를 사용하여 포스트 메소드에서 목록을 전달하는 방법은 무엇입니까?

cafebook 2023. 8. 26. 12:16
반응형

Spring MVC를 사용하여 포스트 메소드에서 목록을 전달하는 방법은 무엇입니까?

요청 본문의 값 목록을 전달해야 합니다.POST방법을 알고 있습니다.400: Bad Request error.

다음은 제 샘플 코드입니다.

@RequestMapping(value = "/saveFruits", method = RequestMethod.POST, 
    consumes = "application/json")
@ResponseBody
public ResultObject saveFruits(@RequestBody List<String> fruits) {
    ...
}

제가 사용하는 JSON은 다음과 같습니다.{"fruits":["apple","orange"]}

당신은 잘못된 JSON을 사용하고 있습니다.이 경우 다음과 같은 JSON을 사용해야 합니다.

["orange", "apple"]

해당 양식에서 JSON을 수락해야 하는 경우:

{"fruits":["apple","orange"]}

래퍼 개체를 만들어야 합니다.

public class FruitWrapper{

    List<String> fruits;

    //getter
    //setter
}

그런 다음 컨트롤러 방법은 다음과 같습니다.

@RequestMapping(value = "/saveFruits", method = RequestMethod.POST, 
    consumes = "application/json")
@ResponseBody
public ResultObject saveFruits(@RequestBody FruitWrapper fruits){
...
}

저도 같은 사용 사례가 있습니다. 다음과 같은 방법으로 방법 정의를 변경할 수 있습니다.

@RequestMapping(value = "/saveFruits", method = RequestMethod.POST, 
    consumes = "application/json")
@ResponseBody
public ResultObject saveFruits(@RequestBody Map<String,List<String>> fruits) {
    ..
}

유일한 문제는 "과일" 대신 어떤 키도 사용할 수 있다는 것입니다. 하지만 큰 기능이 아니라면 포장지를 쉽게 제거할 수 있습니다.

입력을 다음과 같이 전달할 수 있습니다.["apple","orange"]방법을 그대로 두고 싶다면요.

그것은 비슷한 방식의 서명으로 저에게 효과가 있었습니다.

언급URL : https://stackoverflow.com/questions/34789357/how-to-pass-liststring-in-post-method-using-spring-mvc

반응형