У меня есть действие контроллера, которое, я думаю, должно быть HTTP PUT, но Spring жалуется, когда я пытаюсь использовать @RequestParam в действии контроллера. Разрешены ли параметры запроса для методов HTTP PUT, и именно поэтому Spring отклоняет его?
@RequestMapping(value = "/{helpDocumentId}/vote", method = RequestMethod.PUT)
public void voteHelpfulness(@PathVariable long helpDocumentId, @RequestParam boolean isHelpful) {
helpManager.voteOnHelpDocument(helpDocumentId, isHelpful);
}
При выполнении выдает эту ошибку:
org.springframework.web.bind.MissingServletRequestParameterException: Required boolean parameter 'isHelpful' is not present
Конечно, параметр isHelpful
присутствует. Я могу заставить приведенный выше код работать идеально для HTTP POST, поэтому я знаю, что это не проблема.
$.ajax({
url: "/help/" + helpDocumentId + "/vote.json",
type: "PUT",
data: {
isHelpful: isHelpful
},
success: function(response) {
// ....
}
});
Является ли PUT правильным методом http? Это действие изменяет helpDocument
, но не создает его.