【发布时间】:2013-03-07 16:17:07
【问题描述】:
我在配置 spring MVC 以在正确的控制器中处理表单 POST 数据时遇到问题。我有一个 add 操作,它将向数据库添加一条新记录。
提交表单后,我收到 404 错误 (http://localhost:8084/lyricsBase/song/submit.html),所以我想我在提交表单时出错了。
这是我的控制器代码:
public class SongController extends MultiActionController {
[...]
@RequestMapping(value = "/song/submit.html", method = RequestMethod.POST)
public ModelAndView submit(@RequestParam("song") Song song) throws Exception {
HashMap model = new HashMap();
model.put("song", song);
// or do something better here...
return new ModelAndView("t.edit", model);
}
这是视图表单标签:
<form:form method="POST" commandName="song" action="submit.html">
我的应用程序代码可在github 上找到。以下是重要文件:the form view、controller(该类是一个多控制器,因为我不想为每个操作创建单独的文件)和servlet configuration。
不知道这是否重要,但我正在为视图层使用图块(tiles.xml 中使用了逻辑视图名称)。
此外,我并不完全了解 Spring 路由的工作原理。到目前为止,我在servlet xml中定义了一个映射,但不知道这是否是一个好方法......
【问题讨论】:
-
请将相关代码sn-ps添加到您的问题中。
-
@KeesdeKooter 重要代码 sn-ps 添加。
-
如果您使用 @RequestMapping 注解映射您的请求,则无需在您的 servlet.xml 中映射它。
-
在浏览器调试工具中检查提交表单时调用的 url。是 /song/submit.html 吗?