サーバーにajax POST要求を送信し、応答を取得しようとしています。 私の問題は、私がフォームを送信すると、私の@RequestBody paramが空であることです。 私はこのチュートリアルに続き、その人と同じことをしました。 http://www.mkyong.com/spring-mvc/spring-4-mvc-ajax-hello-world-example/ajax POSTメソッド呼び出し後に@RequestBody属性が空です
コードの関連部分: コントローラ:のpom.xmlに
@JsonView(Views.Public.class)
@RequestMapping(value = "searchEvents", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ModelAndView findEvents(HttpServletRequest request, HttpServletResponse response, @RequestBody EventFilterBean eventFilterBean) {
///
}
index.jspを
var search = {}
search["eventName"] = $("#eventName").val();
$.ajax({
type : "POST",
contentType : "application/json",
url : "searchEvents",
data : JSON.stringify(search),
dataType : 'json',
timeout : 100000
});
Iは
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0.pr3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0.pr3</version>
</dependency>
を追加私は解決策を見つけることを試みました私はできませんでした。事前に助けていただきありがとうございます。
こんにちは、ありがとうございました。私は戻り値に同意しますが、それは今私の問題ではありません。チュートリアルでは、自分のカスタムクラスをparamとして渡すことができます。チュートリアルで理解しているように、クラスパスにjacksonを含める必要があります。ジャクソンは解決し、jsonのeventNameフィールドに一致する必要があります。カスタムクラスのmy eventName文字列に追加します。 – Spasoje