springmvc에서 자주 사용하는 initDatabinder 처리 시간

1727 단어 springMVC
프런트엔드에서 전달된 시간 문자열과 프런트엔드에서 전달된 문자열에 대한 바인딩 시간 매개 변수:
import org.springframework.util.StringUtils;

public class DateConvertEditor extends PropertyEditorSupport {
    private SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd" ); 
    public void setAsText(String text) throws IllegalArgumentException {
         if (StringUtils.hasText(text)) {
             try {
                 if (text.indexOf(":" ) == -1 && text.length() == 10) {
                    setValue( this.dateFormat .parse(text));
                } else if (text.indexOf(":") > 0 && text.length() == 19) {
                    setValue( this.datetimeFormat .parse(text));
                } else if (text.indexOf(":") > 0 && text.length() == 21) {
                    text = text.replace( ".0", "");
                    setValue( this.datetimeFormat .parse(text));
                } else {
                     throw new IllegalArgumentException(
                             "Could not parse date, date format is error ");
                }
            } catch (ParseException ex) {
                IllegalArgumentException iae = new IllegalArgumentException(
                         "Could not parse date: " + ex.getMessage());
                iae.initCause(ex);
                throw iae;
            }
        } else {
            setValue( null);
        }
    }
}

좋은 웹페이지 즐겨찾기