这是我的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)”上设置了一个断点,发现传入的对象具有null值的EntryName和EntryBody。但是,当我在JavaScript控制台中检查“ $('#add-be-title')。val()”和“ CKEDITOR.instances.addBeBody.getData()”的值时,它们具有正确的值。

有任何想法吗?

最佳答案

区分大小写在Ajax中也很重要。

您能否在BlogEntry类中检查EntryName和EntryBody变量是否区分大小写。

声明的变量应采用驼峰形式,例如“ entryBody”和“ entryName”,而相应的设置方法将类似于getEntryBody(),setEntryBody()等。

因此,请在ajax调用中修改数据属性,并在类中使用“ entryBody”和“ entryName”相同的大小写(驼峰大小写)来修改变量

09-12 17:20