Могут ли Spring MVC иметь параметры запроса для метода HTTP PUT, или я должен использовать сообщение? Что мне следует использовать для RESTful?

У меня есть действие контроллера, которое, я думаю, должно быть 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 , но не создает его.

19
задан egervari 23 November 2011 в 23:21
поделиться