[java] Spring MVC에서 포스트 데이터를 명시 적으로 얻는 방법은 무엇입니까?

게시물 데이터 자체를 얻을 수있는 방법이 있습니까? 스프링이 포스트 데이터를 자바 객체에 바인딩하는 것을 알고 있습니다. 그러나 처리하려는 두 필드가 주어진 경우 해당 데이터를 어떻게 얻을 수 있습니까?

예를 들어 내 양식에 두 개의 필드가 있다고 가정합니다.

 <input type="text" name="value1" id="value1"/>
 <input type="text" name="value2" id="value2"/>

컨트롤러에서 해당 값을 검색하려면 어떻게해야합니까?



답변

내장 컨트롤러 인스턴스 중 하나를 사용하는 경우 컨트롤러 메서드에 대한 매개 변수 중 하나가 Request 객체가됩니다. request.getParameter("value1")POST (또는 PUT) 데이터 값을 가져 오기 위해 호출 할 수 있습니다 .

Spring MVC 어노테이션을 사용하는 경우, 메소드의 매개 변수에 어노테이션이있는 매개 변수를 추가 할 수 있습니다.

@RequestMapping(value = "/someUrl")
public String someMethod(@RequestParam("value1") String valueOne) {
 //do stuff with valueOne variable here
}


답변

OP의 정확한 질문에 대한 또 다른 대답은 consumes콘텐츠 유형을 로 설정 "text/plain"한 다음 @RequestBody String입력 매개 변수 를 선언하는 것 입니다. 이렇게하면 POST 데이터의 텍스트가 선언 된 String변수로 전달됩니다 ( postPayload다음 예제에서).

물론 이것은 POST 페이로드가 텍스트 데이터라고 가정합니다 (OP에 명시된 경우).

예:

    @RequestMapping(value = "/your/url/here", method = RequestMethod.POST, consumes = "text/plain")
    public ModelAndView someMethod(@RequestBody String postPayload) {
        // ...    
    }


답변

Spring MVC는 Servlet API 위에서 실행됩니다. 따라서 HttpServletRequest#getParameter()이를 위해 사용할 수 있습니다 .

String value1 = request.getParameter("value1");
String value2 = request.getParameter("value2");

HttpServletRequest이미의 메소드 인자의 하나로서 스프링 MVC 안에 당신이 사용할 수 있어야 handleRequest()하는 방법.


답변