首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

spring3 页面form标签binding异常。Neither BindingResult*

2012-09-08 
spring3 页面form标签binding错误。**Neither BindingResult***java.lang.IllegalStateException: Neither

spring3 页面form标签binding错误。**Neither BindingResult***

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'book' available as request attribute

?

昨日在学习spring3的时候,在做一个页面传送对象到后台,也就是说页面binding对象,使用到

<form:form method="POST" modelAttribute="book">  <form:input path="name"/>  <form:input path="author"/>  <input type="submit" value="Post"></form:form>

?spring的form标签的modelAttribute属性绑定对象Book。结果就出现上述错误,但是由于与本人阅读文档的能力有限,于是看了看文档,马上GOOGLE,结果折腾了一天,终于找到答案.

最后在看看上述错误提示,突然想起是不是要在进入此页面的时候,必须要创建一个book对象,将它放到页面的context中,让spring来注入,于是在controller中添加了多了个RequestMethod.GET方法,用来创建一个book对象将它放到context中,这个context我不知道如何说,这个有点类似struts的context,是用来放值的。

@Controller@RequestMapping("/searchbooks")public class SearchBookController {private IBookService bookService;@Resource(name="bookServiceImpl")public void setBookService(IBookService bookService) {this.bookService = bookService;}@RequestMapping(method=RequestMethod.POST)public String findBooks(@ModelAttribute("book") Book book,BindingResult result,Model model){System.out.println("Book name:"+book.getName()+" author: "+book.getAuthor()+" info:"+book.getInfo());book.setAuthor(null);List<Book> books = bookService.findByEntity(book);model.addAttribute("books", books);return "bookresult";}//在后来再增加下面的方法,用来转到使用到spring form标签的jsp页面。@RequestMapping(method=RequestMethod.GET)public String searchBooks(Model model){Book book = new Book();model.addAttribute("book",book);return "searchbooks";}}

?

总结,在进入spring form标签设定binding对象页面前必须有是有一个需binding的对象放在context中(类似struts的context stack和value stack),spring才能binding。不像struts的页面自动binding。

热点排行