[SPRING] Spring MVC에서 Required String 매개 변수가 존재하지 않습니다.
SPRINGSpring MVC에서 Required String 매개 변수가 존재하지 않습니다.
나는 봄 MVC 내 컨트롤러에 AJAX 쿼리를 만들려고합니다.
내 행동 코드는 다음과 같습니다.
@RequestMapping(value = "events/add", method = RequestMethod.POST)
public void addEvent(@RequestParam(value = "start_date") String start_date, @RequestParam(value = "end_date") String end_date, @RequestParam(value = "text") String text, @RequestParam(value = "userId") String userId){
//some code
}
내 Ajax 쿼리는 다음과 같습니다.
$.ajax({
type: "POST",
url:url,
contentType: "application/json",
data: {
start_date: scheduler.getEvent(id).start_date,
end_date: scheduler.getEvent(id).end_date,
text: scheduler.getEvent(id).text,
userId: userId
},
success:function(result){
//here some code
}
});
하지만 오류가 발생했습니다.
왜? 내가 알기로 나는 그것을 (@RequestParam (value = "start_date")와 같이 표현했다. String start_date
UDP 이제 404를 주겠다. 데이터를 가져올 내 수업
public class EventData {
public String end_date;
public String start_date;
public String text;
public String userId;
//Getters and setters
}
내 js AJAX 호출은 다음과 같습니다.
$.ajax({
type: "POST",
url:url,
contentType: "application/json",
// data: eventData,
processData: false,
data: JSON.stringify({
"start_date": scheduler.getEventStartDate(id),
"end_date": scheduler.getEventEndDate(id),
"text": scheduler.getEventText(id),
"userId": "1"
}),
컨트롤러 동작 :
@RequestMapping(value = "events/add", method = RequestMethod.POST)
public void addEvent(@RequestBody EventData eventData){
}
JSON 데이터는 다음과 같습니다.
end_date: "2013-10-03T20:05:00.000Z"
start_date: "2013-10-03T20:00:00.000Z"
text: "gfsgsdgs"
userId: "1"
해결법
-
==============================
1.서버 측에서는 요청 문자열을 쿼리 문자열로 기대하지만 클라이언트 측에서는 json 객체를 보냅니다. json을 바인딩하려면 모든 매개 변수를 포함하는 단일 클래스를 만들고 @RequestParam 대신 @RequestBody 주석을 사용해야합니다.
서버 측에서는 요청 문자열을 쿼리 문자열로 기대하지만 클라이언트 측에서는 json 객체를 보냅니다. json을 바인딩하려면 모든 매개 변수를 포함하는 단일 클래스를 만들고 @RequestParam 대신 @RequestBody 주석을 사용해야합니다.
@RequestMapping(value = "events/add", method = RequestMethod.POST) public void addEvent(@RequestBody CommandBean commandBean){ //some code }
여기에 더 자세한 설명이 있습니다.
-
==============================
2.나는 같은 문제가 .. 게시물 요청에 config 매개 변수를 지정하여 해결 :
나는 같은 문제가 .. 게시물 요청에 config 매개 변수를 지정하여 해결 :
var config = { transformRequest : angular.identity, headers: { "Content-Type": undefined } } $http.post('/getAllData', inputData, *config*).success(function(data,status) { $scope.loader.loading = false; })
config가 내가 포함 된 매개 변수 였고 작동하기 시작했습니다. 희망이 도움이 :)
from https://stackoverflow.com/questions/19619088/required-string-parameter-is-not-present-error-in-spring-mvc by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 뷰 레이어에서 spring mvc 컨트롤러의 URL을 찾을 수 있습니까? (0) | 2019.02.07 |
---|---|
[SPRING] Spring @ 트랜잭션이 트랜잭션을 시작하지 않음 (0) | 2019.02.07 |
[SPRING] 봄에는 정리 코드를 넣기위한 종료 프로세스가 있습니까? (0) | 2019.02.07 |
[SPRING] Spring을 사용하여 주입 된 필드에 Parameterized JUnit 테스트 러너를 사용하려면 어떻게해야합니까? (0) | 2019.02.07 |
[SPRING] 봄 3.2 새로운 mvc 테스트를 가진 사용자 로그인 방법 (0) | 2019.02.06 |