【发布时间】:2014-08-09 13:47:57
【问题描述】:
我有两个实体:Word 和 Notebook。我正在尝试使用@987654321 将单词保存到数据库中,@Spring MVC 可以设置为自动将传入的 JSON 字符串绑定到 Java 对象中,并且效果很好。但是有一个与外键相关的问题。如果我的 Word 实体依赖于 Notebook 实体怎么办。
这是我向控制器发送请求的方式
$.ajax({
type: "POST",
url: "/doAddWord",
data: JSON.stringify({ word: word, translation: translation, transcription: transcription, example: examples }),
contentType: 'application/json',
success: function() {
alert('success');
}
});
这是控制器中的方法:
@RequestMapping(value = "/doAddWord", method = RequestMethod.POST, headers = {"Content-type=application/json"})
@ResponseBody
public void addWord(@RequestBody Word word, HttpSession session) {
Integer userId = (Integer)session.getAttribute("userId");
Notebook notebook = notebookService.findByName("default", userId);
word.setNotebook(notebook);
wordService.add(word);
}
正如您在我的控制器中看到的那样,我通过笔记本名称(现在它是硬编码的“默认”)和用户 ID 从数据库中获取笔记本。在我的 jquery 代码中,我应该发送笔记本名称。我不能只将笔记本名称添加到我的 json 中,因为我得到 500 Erorr 并且它不仅仅是 String 它是 Object。
有什么方法可以向控制器发送多数据:json 和一些值,或者可能是我如何实现它的其他提示。
提前致谢。
【问题讨论】:
标签: ajax json spring-mvc