`
cowwen
  • 浏览: 26731 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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。

分享到:
评论

相关推荐

    Spring web MVC和spring 2.0 form tag解说

    这些标签包括&lt;form:form&gt;、&lt;form:input&gt;、&lt;form:errors&gt;等,它们与Spring的BindingResult和ModelAttribute机制相结合,实现了模型数据与表单元素的自动绑定和错误处理。 **4. Form Tag常用标签** - `&lt;form:form&gt;`: ...

    spring标签使用

    form 标签是 Spring 的表单标签库中的一个重要标签,它会生成一个 HTML 的“form”标签,同时为内部标签的绑定暴露了一个绑定路径(binding path)。它把命令对象(command object)放在 PageContext 中,这样内部的...

    Spring MVC 学习笔记 十一 data binding

    错误信息可以通过`BindingResult`对象获取。 9. **数据绑定与异常处理** 如果数据绑定过程中出现错误,Spring MVC会自动抛出异常,如`MethodArgumentNotValidException`。通过配置全局异常处理器,我们可以统一...

    Ajax-JQuery-JSON-Form-Binding.zip

    Ajax-JQuery-JSON-Form-Binding.zip,用于将json数据绑定到表单的轻量级插件。对于使用ajax和具有大量字段的表单很有用。,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和...

    spring-boot中文参考指南

    ### Spring Boot中文参考指南知识点概览 #### 一、Spring Boot 概述 - **Spring Boot** 是一种简化新Spring应用的初始搭建以及后续开发的框架。它旨在通过提供默认配置来简化设置过程,使开发者能够专注于应用的...

    Spring3 MVC 实例

    可以使用JSR-303/JSR-349的Bean Validation注解(如`@NotNull`,`@Size`等)来定义字段规则,然后在控制器中使用`BindingResult`对象来检查验证结果并处理错误。 5. **配置(Configuration)**:在Spring3中,配置...

    spring3mvc真正入门资料

    - **BindingResult**:获取验证结果,用于显示错误信息。 6. **拦截器** - **HandlerInterceptor**:拦截请求,执行预处理和后处理操作,如权限验证、日志记录等。 - **@Order**:指定拦截器执行顺序。 7. **...

    SAP Adobe Form Technique.pdf

    - **Click Object Tab  Binding**:绑定文本字段到数据源。 - **Binding Properties**:设置绑定属性。 - **Click on Save, Close & Activate**:保存、关闭并激活表单。 3. **Test the Form**:测试表单。 -...

    Spring3MVC教程(附有完整项目,可直接部署)

    3. **数据验证**:通过@Valid和BindingResult实现数据验证。 4. **异常处理**:通过@ControllerAdvice和@ExceptionHandler全局处理异常。 5. **视图模板支持**:支持多种视图技术如JSP、Thymeleaf、FreeMarker等。...

    spring validate 笔记

    在视图层,使用`&lt;form:errors&gt;`标签来展示错误信息,如`&lt;form:errors path="username" /&gt;`,这里的`path`与你的验证属性对应,如果该属性在验证过程中有错误,Spring MVC会自动填充错误信息。 6. **资源文件**: ...

    springmvc-form表单的使用

    - 在JSP页面中使用`&lt;%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %&gt;`来引入Spring MVC的表单标签库。这个步骤非常重要,因为Spring MVC的表单标签库提供了一系列用于创建HTML表单元素的...

    spring-boot-中文参考指南

    ### Spring Boot 中文参考指南知识点概述 #### 一、Spring Boot 概览 **Spring Boot** 是一个基于 **Spring Framework** 的开源框架,它简化了新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式(默认...

    spring MVC学习笔记

    3. **BindingResult**:用于获取数据绑定和验证的结果。 **五、视图解析** 1. **JSP 视图**:最常见的方式,通过 `&lt;jsp:include&gt;` 或 `&lt;c:out&gt;` 等 JSTL 标签展示数据。 2. **模板引擎**:如 FreeMarker 和 ...

    Form Framework

    此外,可能还介绍了某些特定的开源框架,如ZK Form、Spring Form等,它们提供了丰富的功能和最佳实践。 **总结** Form Framework是软件开发中的重要工具,它简化了表单的创建和管理,提高了开发效率。理解其核心...

    spring-boot中文参考手册

    ### Spring Boot中文参考手册知识点概览 #### 一、Spring Boot简介与文档 - **文档概述**:本手册是一份非常全面的Spring Boot中文参考文档,涵盖了从入门到进阶的多个方面,适合不同水平的开发者参考。 - **获取...

    JGoodies Binding

    **JGoodies Binding** 是一个Java用户界面设计库,它专注于数据绑定技术,使得开发者能够更轻松地在Java Swing组件和应用程序模型之间建立双向数据绑定。这个库是JGoodies系列库的一部分,由Karsten Lentzsch开发,...

    springboot

    - **松散的绑定(Relaxed binding)**:讲解Spring Boot如何提供更加灵活的配置绑定机制。 - **@ConfigurationProperties校验**:说明如何对配置属性进行校验。 - **Profiles**: - **添加激活的配置(profiles)**...

    spring amqp rabbit 标签使用

    **3. 使用`spring-amqp`标签** 在Spring XML配置文件中,你可以使用`&lt;rabbit:connection-factory&gt;`、`&lt;rabbit:template&gt;`等标签来配置RabbitMQ的相关组件。例如: ```xml &lt;beans xmlns="http://www.springframework...

    SpringFormValidator

    7. **Spring Form Tag Library**:Spring提供的JSP标签库,简化了在视图层处理表单和验证错误的方式。 8. **ValidationMessages.properties**:用于存放验证错误消息的资源文件,可以根据不同的验证规则返回不同...

Global site tag (gtag.js) - Google Analytics