在Spring提交表单

时间:2010-11-13 21:09:01

标签: hibernate spring-mvc

我有一个带有表格和表格的小应用程序,没什么特别的。我希望能够单击一个特定行并删除/修改信息。我设法使用Richfaces这样做,但现在我必须使用Spring Framework复制此功能。 我以这种方式渲染表格行:

    <form:form action="del.htm" commandName="movie">
 <td><form:hidden path="movieName"/>${movie.movieName}</td>
 <td><form:hidden path="year"/>${movie.year}</td>
 <td><form:hidden path="length"/>${movie.length}</td>
 <td><form:hidden path="category"/>${movie.category}</td>
 <td><form:hidden path="actors"/>${movie.actors}</td>
 <td><input type="submit" value="Delete" /><input type="submit" value="Modify"/></td>
    </form:form>

指定的操作映射到Controller,该Controller返回ModelAndView以呈现页面。正确调用与删除相对应的函数,但是我没有收到电影对象,所以我可以根据它的id从Hibernate中删除它。如果有人知道如何发送电影对象,我会很高兴听到它。

任何帮助都将受到高度赞赏!

2 个答案:

答案 0 :(得分:0)

如何将电影ID添加到表单?

 <td><form:hidden path="id"/>${movie.id}</td>

答案 1 :(得分:0)

你可以使用像

这样的东西
 <td><a href="deleteMovie/${movie.id}"><spring:message code="label.delete"/></a></td>

然后在你的控制器中你应该有一个方法如下:

@RequestMapping("/deleteMovie/{id}")
public String removeMovie(@PathVariable("id") Integer id) {

    movieService.removeMovie(id);

    return "redirect:/index";
}

为了将影片对象传递给窗体,您需要将影片对象放置在导致渲染jsp的方法内的地图上。所以例如

    @RequestMapping(method = RequestMethod.GET)
public String selectMovie(Map<String, Object> map) {
    //PicasawebService myService = new PicasawebService("exampleCo-exampleApp-1");

    map.put("movie", movieService.getMovie(id);


    return "movieDetails";
}

其中movieDetails是url模式,它使您的jsp具有您向我们展示的表单。

我希望它有所帮助......