我的观点有两种形式:
<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;
}
答案 0 :(得分:1)
有很多问题。
控制器中指定的commandName是什么。
它是info
并且info
具有chapter
属性。
如果info
是commandName
<form:form method="post" action="/insertChapter" commandName="info">