• 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     }

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

    欢迎各位转载。 注意:转载请注明出处。
  • 相关阅读:
    iOS:UIResponser控件的介绍(响应者)
    iOS:触摸控件UITouch、事件类UIEvent
    iOS:触摸事件和手势识别的介绍
    iOS:菜单控制器和菜单项:UIMenuController和UIMenuItem
    iOS:对GCD中 同步、异步、并行、串行的见解
    iOS:转载:同步、异步、并行、串行的详解
    iOS:GCD技术——仅仅执行一次和执行多次 dispatch_once和dispatch_apply
    pes and ts stream, how to convert
    5分钟搞定内存字节对齐
    sed 使用
  • 原文地址:https://www.cnblogs.com/Summer7C/p/4719802.html
Copyright © 2020-2023  润新知