在SpringMVC中,bean中定义了Date,double等类型,如果没有做任何处理的话,日期以及double都无法绑定。
解决的办法就是使用spring mvc提供的@InitBinder标签
在我的项目中是在BaseController中增加方法initBinder,并使用注解@InitBinder标注,那么spring mvc在绑定表单之前,都会先注册这些编辑器,当然你如果不嫌麻烦,你也可以单独的写在你的每一个controller中。剩下的控制器都继承该类。spring自己提供了大量的实现类,诸如CustomDateEditor ,CustomBooleanEditor,CustomNumberEditor等许多,基本上够用。
当然,我们也可以不使用他自己自带这些编辑器类,那下面我们自己去构造几个
- import org.springframework.beans.propertyeditors.PropertiesEditor;
- public class DoubleEditor extends PropertiesEditor {
- @Override
- public void setAsText(String text) throws IllegalArgumentException {
- if (text == null || text.equals("")) {
- text = "0";
- }
- setValue(Double.parseDouble(text));
- }
- @Override
- public String getAsText() {
- return getValue().toString();
- }
- }
- import org.springframework.beans.propertyeditors.PropertiesEditor;
- public class IntegerEditor extends PropertiesEditor {
- @Override
- public void setAsText(String text) throws IllegalArgumentException {
- if (text == null || text.equals("")) {
- text = "0";
- }
- setValue(Integer.parseInt(text));
- }
- @Override
- public String getAsText() {
- return getValue().toString();
- }
- }
- import org.springframework.beans.propertyeditors.PropertiesEditor;
- public class FloatEditor extends PropertiesEditor {
- @Override
- public void setAsText(String text) throws IllegalArgumentException {
- if (text == null || text.equals("")) {
- text = "0";
- }
- setValue(Float.parseFloat(text));
- }
- @Override
- public String getAsText() {
- return getValue().toString();
- }
- }
- import org.springframework.beans.propertyeditors.PropertiesEditor;
- public class LongEditor extends PropertiesEditor {
- @Override
- public void setAsText(String text) throws IllegalArgumentException {
- if (text == null || text.equals("")) {
- text = "0";
- }
- setValue(Long.parseLong(text));
- }
- @Override
- public String getAsText() {
- return getValue().toString();
- }
- }
在BaseController中
- @InitBinder
- protected void initBinder(WebDataBinder binder) {
- binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), true));
- / binder.registerCustomEditor(int.class, new CustomNumberEditor(int.class, true));
- binder.registerCustomEditor(int.class, new IntegerEditor());
- / binder.registerCustomEditor(long.class, new CustomNumberEditor(long.class, true));
- binder.registerCustomEditor(long.class, new LongEditor());
- binder.registerCustomEditor(double.class, new DoubleEditor());
- binder.registerCustomEditor(float.class, new FloatEditor());
- }
- public class org.springframework.beans.propertyeditors.PropertiesEditor extends java.beans.PropertyEditorSupport {
相关推荐
Spring MVC 使用 @InitBinder 标签对表单数据绑定的方法 Spring MVC 框架中, Bean 中定义了 Date、double 等类型,如果没有做任何处理的话,日期以及 double 都无法绑定。这是因为 Spring MVC 框架中的数据绑定...
在需要日期转换的 Controller 中使用 SpringMVC 的注解 @InitBinder 和 Spring 自带的 WebDataBinder 类来操作。 @InitBinder 注解的作用是初始化 WebDataBinder,用于绑定请求参数到指定的属性编辑器。...
在Spring MVC中,数据绑定是一项核心功能,它允许开发者将用户输入的数据与控制器中的对象属性进行关联,简化了数据处理的复杂性。本文将详细介绍Spring MVC中的数据绑定,并提供实例帮助初学者理解。 1. **模型...
`@ModelAttribute`在表单绑定、数据校验和分页等场景中都有着广泛的应用。通过它,我们可以实现模型和视图之间的数据共享,简化了数据处理的流程,提高了代码的可读性和可维护性。 总的来说,`@ModelAttribute`是...
本篇文章将深入探讨Spring MVC中的表单标签库,以及如何在实际项目中使用它们来创建动态、交互式的表单。 1. **表单标签库介绍** Spring MVC的表单标签库是JSP的一部分,它可以生成HTML表单元素,并且能够自动绑定...
`@RequestParam`用于从请求参数中获取值,`@PathVariable`用于处理URL路径变量,`@ModelAttribute`则常用于绑定表单数据到模型对象。 此外,Spring MVC提供了ModelAndView类,它可以将处理结果(模型数据)和视图名...
在实际开发中,我们可能使用诸如IntelliJ IDEA或Eclipse等IDE,它们提供了对Spring MVC数据绑定和校验的强大支持,包括代码提示、错误检测和自动修复。 综上所述,Spring MVC的数据绑定和数据校验机制为开发者提供...
这些标签是Spring Web MVC模块的一部分,能够与Spring的模型绑定机制无缝集成,简化了前端到后端的数据传递。 113.9.1. **配置** 在使用Spring的表单标签库之前,需要在JSP页面中引入Spring的Taglib。这通常在页面...
Spring MVC还支持数据绑定,自动将请求参数绑定到Java对象,这极大地简化了表单提交的处理。对于验证,Spring MVC提供了BindingResult和Validator接口,用于校验模型数据的正确性。 另外,Spring MVC与Spring框架的...
总的来说,"Mastering Spring MVC 4(2015.09)源码"提供了深入学习Spring MVC的机会,你可以通过阅读和分析源码来了解如何配置DispatcherServlet、怎样编写控制器、如何进行数据绑定与验证,以及如何利用拦截器等特性...
Spring MVC支持自动的数据绑定,可以将请求参数直接绑定到Controller方法的参数上,也可以将表单数据绑定到Java对象。此外,@Valid用于验证模型数据,配合Validator接口实现自定义校验规则。 7. **异常处理** ...
`@InitBinder`可以自定义数据绑定规则,`@Valid`可以配合JSR-303/JSR-349的Bean Validation进行表单验证。 此外,Spring MVC支持RESTful风格的URL设计,这使得API更易于理解和使用。通过`@RestController`注解,...
6. **数据绑定与验证**:Spring MVC提供了数据绑定和验证功能,允许将表单数据自动绑定到Java对象,并进行校验,简化了业务逻辑处理。 7. **视图解析**:Spring MVC 4.0支持多种视图技术,如JSP、FreeMarker、...
在Spring MVC框架中,数据绑定和表单标签是开发Web应用程序时非常重要的组成部分。它们简化了控制器和视图之间的数据交换,并提供了强大的表单渲染功能。以下是对这两个概念的详细解释。 **数据绑定**: 数据绑定是...
例如,使用jQuery的`validate()`插件可以对表单输入进行验证,同时Spring MVC服务器端可以进行二次验证。 5. **异常处理**:Spring MVC通过`@ExceptionHandler`注解处理异常,可以返回定制的错误页面。配合jQuery,...
全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、上传文件、下载文件多个角度介绍了Spring MVC。除此之外,...
这本书深入浅出地介绍了如何有效地使用Spring MVC进行开发,以下是一些核心知识点的详细说明: 1. **Spring MVC基本概念**:首先,了解Spring MVC的基本架构,包括DispatcherServlet、Controller、Model、View和...
7. **Form Handling**: Spring MVC 提供了强大的表单处理能力,包括自动数据绑定、数据校验等功能。通过@Valid可以进行数据验证,@RequestParam和@PathVariable用于获取请求参数。 8. **Interceptors**: 拦截器是...
全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、上传文件、下载文件多个角度介绍了Spring MVC。除此之外,...