这就是我在JavaScript文件中的内容:
$(document).ready(function () {
$('#add-be-submit').click(function (event) {
event.preventDefault();
$.ajax({
type: 'POST',
url: '/snapdragon/blog/new',
data: JSON.stringify({
EntryName: $('#add-be-title').val(),
EntryBody: CKEDITOR.instances.addBeBody.getData()
}),
contentType: 'application/json; charset=utf-8',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
dataType: 'json'
}).success(function (data, status) {
$('#add-be-title').val('');
CKEDITOR.instances.addBeBody.getData('');
});
});
这就是我在控制器中的内容:
/* ---------- ADD BLOG ENTRTY ---------- */
@RequestMapping(value = "/new", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void addBlogEntry(@Valid @RequestBody BlogEntry entry) {
dao.addBlogEntry(entry);
}
控制器本身的RequestMapping设置为“/ blog”。我找不到问题。我在“dao.addBlogEntry(entry)”上设置了一个断点,发现传入的对象的EntryName和EntryBody为空值。但是当我在JavaScript控制台中检查“$('#add-be-title')。val()”和“CKEDITOR.instances.addBeBody.getData()”的值时,它们具有正确的值。
有什么想法吗?
答案 0 :(得分:0)
区分大小写在Ajax中也很重要。
请查看BlogEntry类中 EntryName 和 EntryBody 变量的区分大小写。
声明的变量应该是像“entryBody”和“entryName”这样的驼峰,相应的setter就像getEntryBody(),setEntryBody()等。
因此,请修改您的ajax调用中的数据属性以及类中的变量,使用相同的案例(Camel Case),即“ entryBody ”和“ entryName