Spring中的转换器:Converter

配置spring的配置文件:

 1 <bean id="conversionService"
 2         class="org.springframework.context.support.ConversionServiceFactoryBean">
 3         <property name="converters">
 4             <list>
 5                 <bean class="app06a.converter.StringToDateConverter">
 6                     <constructor-arg type="java.lang.String" value="MM-dd-yyyy"/>
 7                 </bean>
 8             </list>
 9         </property>
10     </bean>
11     <mvc:annotation-driven conversion-service="conversionService"/>

这样配置好了之后,就可以创建一个Converter的装换器类来写一个转换器的实现。这里我们写的转换器是把String类型转换为Date类型的。日期格式为value后面的。

 1 public class StringToDateConverter implements Converter<String,Date>{
 2     private String datePattern;
 3     public StringToDateConverter(String datePattern){
 4         this.datePattern=datePattern;
 5         System.out.println("instiating"+datePattern);
 6     }
 7     @Override
 8     public Date convert(String s) {
 9         SimpleDateFormat dateformat=new SimpleDateFormat();
10         dateformat.setLenient(false);
11         try {
12             return dateformat.parse(s);
13         } catch (ParseException e) {
14             throw new IllegalArgumentException("invailed date"+datePattern+"\"");
15         }
16     }
17 }

然后实现了Converer<S,T>接口。

这样,若是日期输入错误,则会返回之前输入的页面,页面上也会出现提示:

 1 @RequestMapping(value="/employee_input")
 2     public String inputEmployee(Model model){
 3         model.addAttribute("employee",new Employee());
 4         return "EmployeeForm";
 5     }
 6
 7     @RequestMapping(value="/employee_save")
 8     public String saveEmployee(@ModelAttribute Employee employee,BindingResult bindresult,Model model){
 9         if(bindresult.hasErrors()){
10             FieldError fielderror=bindresult.getFieldError();
11             return "EmployeeForm";
12         }
13         model.addAttribute("employee",employee);
14         return "EmployeeDetails";
15     }

==========================================================

时间: 2024-08-02 11:03:17

Spring中的转换器:Converter的相关文章

Spring中Ordered接口简介

前言 Spring中提供了一个Ordered接口.Ordered接口,顾名思义,就是用来排序的. Spring是一个大量使用策略设计模式的框架,这意味着有很多相同接口的实现类,那么必定会有优先级的问题. 于是,Spring就提供了Ordered这个接口,来处理相同接口实现类的优先级问题. Ordered接口介绍 首先,我们来看下Ordered接口的定义: public interface Ordered { int HIGHEST_PRECEDENCE = Integer.MIN_VALUE;

DWR在Spring中应用

这里以传递一个对象为例,来说明dwr在Spring中是怎么配置的. JSP页面: <script src='dwr/interface/instructionOuterService.js'></script> <script src='dwr/engine.js'></script> <script src='dwr/util.js'></script> var instructionOuter = { id: 1, name: '

简单介绍下怎么在spring中使用RabbitMQ

这篇文章主要介绍了简单了解如何在spring中使用RabbitMQ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 常见的消息中间件产品: (1)ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现. (2)RabbitMQ AMQP协议的领导实现,支持多种场景.淘宝的MySQL集群内部有使用它进行通讯,Open

Spring中@Async用法总结

 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法. 1.  何为异步调用? 在解释异步调用之前,我们先来看同步调用的定义:同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果. 异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕:而是继续

(转)Spring中@Async用法总结

 原文:http://blog.csdn.net/blueheart20/article/details/44648667 引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法. 1.  何为异步调用? 在解释异步调用之前,我们先来看同步调用的定义:同步就是整个处理过

Spring中@Transactional事务回滚实例及源码

一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,假设我们默认删除对应的成员.但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了.这时候我们希望如果成员删除失败了,之前删除的部门也取消删除.这种场景就可以使用@Transactional事物回滚. 二.checked异常和unc

【spring教程之四】spring中bean的作用域

1. <bean id="stage" class="com.test.pro.Stage"> 在spring中,bean默认都是单例的,也就是说,spring容易只会实例化一次,在以后的每次调用中,都会使用同一个实例.下面的例子可以说明: 2.测试类 package com.test.pro; import org.springframework.context.ApplicationContext; import org.springframewor

spring中依赖注入方式总结

Spring中依赖注入的四种方式 在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入  这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式). 使用属性的setter方法注入 首先要配置被注入的bean,在该bean对应的类中,应该有要注入的对象属性或者基本数据类型的属性.例如:为UserBiz类注入UserDAO,同时为UserBiz注入基本数据类型String,那么这时,就要为UserDAO对象和String类型设置se

spring中使用parent属性来减少配置

在基于spring框架开发的项目中,如果有多个bean都是一个类的实力,如配置多个数据源时,大部分配置的属性都一样,只有少部分不一样,经常是copy上一个的定义,然后修改不一样的地方.其实spring bean定义也可以和对象一样进行继承. 示例如下:  <bean id="testBeanParent"  abstract="true"  class="com.wanzheng90.bean.TestBean">         &