如何将String值发送回Spring MVC?

时间:2014-09-07 17:16:42

标签: java forms spring-mvc hidden-field

问题

我的观点有两种形式:

<form:form method="post" action="/insertChapter" modelAttribute="Chapter">
<form:input type="hidden" path="chapter" value="${info.chapter}"/>
<form:input path="title" />
<input type="submit" value="Insert" />
</form:form>

<form:form method ="GET" action="/deleteChapter" modelAttribute="What is here?">
<form:hidden path = "chapter" value ="${info.chapter}"/>
<input type="submit" value="Delete Chapter ${info.chapter}" />
</form:form>

控制器:

@RequestMapping("/insertChapter")
public String insertChapter(@ModelAttribute Chapter chapter) {
    if (chapter != null)
        infoService.insertChapter(chapter.getChapter(), chapter.getChapter());
        return "redirect:/getInfoListList";
}
@RequestMapping("/deleteChapter")
public String deleteChapter(@RequestParam String chapter) {
    infoService.deleteChapter(chapter);
    return "redirect:/getInfoListList";
}

但是服务器抱怨道:

  

在第62行处理JSP页面时出现异常

Neither BindingResult nor plain target object for bean name 'chapter' available as request attribute

然后

  

BindingResult和bean名称&#39;命令&#39;都没有普通的目标对象。   可用作请求属性

问题/答案

那么设置隐藏字段值的正确方法是什么?我的控制器需要知道值并且值不是常数,因为我有不同形式的不同值。

我需要做什么才能将章节自动传送到控制器?

何时使用表单:输入和何时使用只是输入?我有时会看到在线示例只使用<input ...>代替<form:input>

答案:

似乎我应该在生成第一页的控制器中使用ModelAttribute(除了用于处理帖子的那个)。

其他问题

然后它提出了第二个问题,如何让控制器处理String ModelAttribute,以及如何设置让章节和字符串处理?以下功能是否足够?

@RequestMapping("/getInfoListList")
public ModelAndView getInfoListList(@ModelAttribute Chapter chapter, @ModelAttribute String chaptertobedeleted) {
    List<List<Info>> infoList = infoService.getInfoListList();
    ModelAndView aModel =new ModelAndView("infoListList", "infoListList", infoList);
    return aModel;
}

1 个答案:

答案 0 :(得分:1)

有很多问题。

控制器中指定的commandName是什么。 它是info并且info具有chapter属性。

如果infocommandName

,请尝试使用此功能
<form:form method="post" action="/insertChapter" commandName="info">