SpringMVC - 数据绑定(自定义数据转换器:PropertyEditor、Formatter、Converter)(三)

1、PropertyEditor:内置可扩展,在类中进行局部使用 webdatabinder。(不推荐,一般使用全局方案会比较多)
2、Formatter:内置可扩展,全局,或者使用new Formatter的方式进行局部使用,只能转换String到其他类型。
3、Converter:内置不可扩展,全局或局部,和Formatter类似,但Converter的源对象不仅仅是String,而可以自行进行定义。

 

一、PropertyEditor

@RequestMapping(value = "date1.do")
@ResponseBody
public String date1(Date date1){
    return date1.toString();
}

@InitBinder("date1")
public void initDate1(WebDataBinder binder){
    binder.registerCustomEditor(Date.class,new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
}

 

二、Formatter

package com.imooc.common;

import org.springframework.format.Formatter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class MyDateFormatter implements Formatter {

    public Date parse(String text, Locale locale) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        return sdf.parse(text);
    }

    public String print(Date object, Locale locale) {
        return null;
    }
}



    
    

    
        
            
                
            
        
    

@RequestMapping(value = "date2.do")
@ResponseBody
public String date2(Date date2){
    return date2.toString();
}

 

三、Converter

package com.imooc.common;

import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MyDateConverter implements Converter {

    public Date convert(String source) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return sdf.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}



    
    

    
        
            
                
                
            
        
    

@RequestMapping(value = "date2.do")
@ResponseBody
public String date2(Date date2){
    return date2.toString();
}

 

你可能感兴趣的:(#,JavaWeb,#,Spring,MVC,#,SpringMVC,教程)