今天做一个Spring的case。里面需要将一个表单对象保存为java对象,有一个Date型成员转换时报错:
Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'birthDate': no matching editors or conversion strategy found]
我的Date属性转化如下定义:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
经百,发现CustomDateEditor只能转化java.util.Date类型,而且我原来引入的是java.sql.Date类型。改正以后正常。
分享到:
相关推荐
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); } ``` #### 总结 Spring MVC框架通过各种注解极大地简化了Web应用程序的开发流程。掌握这些注解...
这个`CustomDateEditor`类实现了`setAsText`和`getAsText`方法,分别用于将字符串转换为日期对象以及将日期对象转换为字符串。 #### 四、使用`Converter`实现全局类型转换 除了上面介绍的方法之外,还可以使用`...
例如,如果你有一个bean属性是`Date`类型,但你在配置中提供了一个字符串,Spring会使用`CustomDateEditor`将字符串转换为`Date`对象。 4. **扩展编辑器**:有时,你可能希望对默认的属性编辑器进行扩展,而不是...
public class CustomDateEditor extends PropertyEditorSupport { private SimpleDateFormat dateFormat; public CustomDateEditor() { this.dateFormat = new SimpleDateFormat("yyyy-MM-dd"); } @Override...
`CustomDateEditor` 类的构造函数需要两个参数,第一个参数是日期格式,第二个参数是一个布尔值,表示是否允许将空字符串转换为 Date 类型。 在 `CustomDateEditor` 类的源代码中,我们可以看到其构造函数的定义: ...
@InitBinder 注解的作用是初始化 WebDataBinder,用于绑定请求参数到指定的属性编辑器。WebDataBinder 是用来绑定请求参数到指定的属性编辑器。由于前台传到 controller里的值是 String 类型的,当往 Model 里 Set ...
视图技术方面,Spring MVC并不限制使用特定的视图技术,它可以与JSP、Velocity、Tiles、iText和POI等多种视图技术协同工作,提供更广泛的灵活性。 在处理用户输入时,Spring MVC支持数据绑定,能够自动将表单数据...
在实际应用中,可能会遇到类型转换的问题,如将用户输入的日期字符串转换为 Date 类型,这时可以使用 @InitBinder 注解和 CustomDateEditor 类进行定制化处理。 - Spring Data JPA:简化了 ORM(对象关系映射),...
例如,在下面的示例代码中,我们使用@InitBinder注解来指定要绑定的参数param和date,并注册了StringTrimmerEditor和CustomDateEditor这两个编辑器。 ```java @Controller @RequestMapping("/index") public class ...
在这个例子中,`CustomDateEditor`是`PropertyEditorSupport`的子类,用于将字符串转换为日期。 除了自定义参数解析器和`@InitBinder`,SpringMVC还支持使用`@ModelAttribute`注解进行更复杂的参数绑定。`@...
当表单数据不能直接自动绑定到类的属性时,可以使用@InitBinder注解初始化一个数据绑定器,自定义数据转换规则。例如,处理日期类型: ```java @Controller public class MyController { @InitBinder public ...
通过`CustomDateEditor`,我们指定了日期的格式为`yyyy-MM-dd`,并且不允许用户输入的时间为空。 #### 四、数据库连接池设置 在实际项目中,数据库连接池是非常重要的,它可以显著提高应用性能。Spring支持多种...
首先创建一个`dateEditor` Bean,配置`CustomDateEditor`,并传入`SimpleDateFormat`实例和一个布尔值(表示是否要求日期字符串不能为空)。接着创建一个`CustomEditorConfigurer` Bean,将`dateEditor` Bean注册为`...
在学生模块中,进行考试的功能比较复杂,首先做了校验,不在考试时间范围内,不能进行考试。考试试题是数据库根据发布考试时的条件随机产生的一套试题。由于每次考试题型题量都是不同的,因此我们继续采用JSON的格式...
如果这类数据类型不做处理的话将无法绑定。 这里我们可以使用注解@InitBinder来解决这些问题,这样SpringMVC在绑定表单之前,都会先注册这些编辑器。一般会将这些方法写在BaseController中,需要进行这类转换的控制...
CustomDateEditor dateEditor = new CustomDateEditor(fmt, true); binder.registerCustomEditor(Date.class, dateEditor); } ``` 在上面的代码中,我们使用了 `@InitBinder` 注解来将日期参数传递给后台。在 `...
- **`@Component`**(不推荐使用):泛指任何非上述类型组件的bean,但在实际应用中,应优先使用`@Controller`、`@Service`或`@Repository`来明确组件的类型。 - 示例: ```java @Component public class ...
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); } ``` 这段代码会在每次请求开始时执行,注册一个自定义编辑器,使得所有以`Date`类型接收的参数...
这段代码注册了一个自定义的日期编辑器,用于将请求中的字符串格式转换为 `Date` 对象,并且可以设置日期格式不宽松。 #### 数据模型控制 在 Spring MVC 中,可以通过 `Model` 或 `ModelMap` 对象向视图传递数据。...
CustomDateEditor解决了Spring MVC中日期参数处理的问题。ExceptionCode和服务层的ServiceException协同处理异常信息。CacheFactory则负责Ehcache的管理和操作。 此外,文档还提到了一些具体问题的解决方案,如...