gpt4 book ai didi

java - spring处理POST数据-注释正确的 Controller

转载 作者:行者123 更新时间:2023-12-01 14:47:35 28 4
gpt4 key购买 nike

我在配置 spring MVC 在正确的 Controller 中处理表单 POST 数据时遇到问题。我有一个 add 操作,它将向数据库添加一条新记录。

提交表单后,我收到 404 错误(http://localhost:8084/lyricsBase/song/submit.html),所以我猜我做错了什么在路由表单提交时。

这是我的 Controller 代码:

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);
}

这是 View 表单标签:

<form:form method="POST" commandName="song" action="submit.html">

我的应用程序的代码可以在 github 上找到。 。以下是重要文件:the form viewcontroller (该类是一个多 Controller ,因为我不想为每个操作创建单独的文件)和 servlet configuration .

不知道这是否重要,但我正在为 View 层使用图 block (并且逻辑 View 名称在 tiles.xml 中使用)。

此外,我并不完全理解 Spring 路由是如何工作的。到目前为止,我在 servlet xml 中定义了一个映射,但不知道这是否是一个好方法...

最佳答案

歌曲的发布值(value)是多少?我不确定 Spring 是否将发布的数据转录或反序列化为对象/实体。你可以尝试改变;

@RequestMapping(value = "/song/submit.html", method = RequestMethod.POST)
public ModelAndView submit(@RequestParam("song") Song song) throws Exception {

进入

@RequestMapping(value = "/song/submit.html", method = RequestMethod.POST)
public ModelAndView submit(@RequestParam("song") String song) throws Exception {

看看是否被采纳。

另一种方式,是从请求对象中读取参数;

@RequestMapping(value = "/song/submit.html", method = RequestMethod.POST)
public ModelAndView submit(HttpServletRequest request) throws Exception {

Object song = request.getParameter("song");

GL!

关于java - spring处理POST数据-注释正确的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15259718/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com