Spring で JSON を渡すのはかなり簡単です。次の jQuery 関数を検討してください。
function processUrlData(data, callback) {
$.ajax({
type: "GET",
url: "getCannedMessageAsJson.html",
data: data,
dataType: "json",
success: function(responseData, textStatus) {
processResponse(responseData, callback);
},
error : function(responseData) {
consoleDebug(" in ajax, error: " + responseData.responseText);
}
});
}
次の String @Controller メソッドを使用します...
@RequestMapping(value = "/getCannedMessageAsJson.html", method = RequestMethod.POST)
public ResponseEntity<String> getCannedMessageAsJson(String network, String status, Model model) {
int messageId = service.getIpoeCannedMessageId(network, status);
String message = service.getIpoeCannedMessage(network, status);
message = message.replaceAll("\"", """);
message = message.replaceAll("\n", "");
String json = "{\"messageId\": \"" + messageId
+ "\", \"message\": \"" + message + "\"}";
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.APPLICATION_JSON);
return new ResponseEntity<String>(json, responseHeaders, HttpStatus.CREATED);
}
私の場合、リクエストは非常に単純であるため、コントローラー メソッドで json の書式設定を配線するだけですが、Jackson のようなライブラリを使用して json 文字列を生成することも簡単にできます。
また、他の人が述べているように、@RequestMapping の「値」が一意の正当なファイル名であることを確認してください。上に示した json メソッドを使用すると、対応する jsp ページを用意する必要はありません (実際には使用しません)。