Java 8 / Spring 4 / Maven / jQuery
Поэтому я создал веб-приложение Spring MVC, в котором index.jsp использует вызов ajax
--- фрагмент index.jsp ----
function popupRuleDeck_update_submit() {
var formJsonStr = $('#form_popupRuleDeck_update').serialize();
$.ajax({
url: '${pageContext.request.contextPath}/ruleDeck_update',
type: "post",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: formJsonStr,
success: function( response) {
$('#ruleDeckTable').row( this).data( response).draw( false);
return true;
},
error: function( response) {
console.log( response);
alert( "ruleDeck update error: " + response.message)
return false;
}
});
}
к методу в моем контроллере
@RequestMapping( value="/ruleDeck_update", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody AjaxResponseBody ruleDeckUpdateHandler( @RequestBody RuleDeck formRuleDeck)
{
AjaxResponseBody result = new AjaxResponseBody( false, "FAILED");
RuleDeck ruleDeck = null;
try {
ruleDeck = tryThisService.findOneRuleDeck( formRuleDeck.getId());
ruleDeck.setRuleDeckId( formRuleDeck.getRuleDeckId());
ruleDeck.setRevision( formRuleDeck.getRevision());
ruleDeck.setName( formRuleDeck.getName());
ruleDeck.setDeckType( formRuleDeck.getDeckType());
ruleDeck.setFileLocation( formRuleDeck.getFileLocation());
ruleDeck = tryThisService.updateOneRuleDeck( ruleDeck);
result.setStatus( true);
result.setMessage("update successful");
} catch (JsonProcessingException e) {
result.setMessage( "JPE:" + e.getMessage());
} catch ( Exception e) {
result.setMessage( "Exception:" + e.getMessage());
}
return result; //should be implicitly converted into json format and send back to the request.
}
где
public class AjaxResponseBody {
@JsonView
private boolean status;
@JsonView
private String message;
// assorted constructors, getters, setters omitted...
}
У меня есть зависимость привязки данных Джексона в моем pom.xml
Я не настроил явно конвертеры сообщений Http / Json / Xml.
Я использовал эту страницу в качестве шаблона.
Вызов ajax отправляет JSONМетод, который действительно находит и обновляет существующий объект, который сохраняется в базе данных, пока что хорош.Метод выполняется без ошибок.Но вызов ajax всегда попадает в функцию ошибки, и ответ кажется неопределенным, как если бы метод фактически не возвращал сериализованный объект AjaxResponseBody.Очевидно, что цель здесь состоит в том, чтобы удостовериться, что функция успеха получит удар, когда метод не выдает ошибок, и нажать на функцию ошибок и извлечь сообщение об ошибке, когда метод выдает ошибку.
Или есть какой-то лучший шаблонЯ должен использовать?
TIA,
code_warrior