jsp提交数据类型默认为String类型,如果不进行数据类型转换直接插入到数据库会报类型不匹配的异常
- package com.zipx.controller.converters;
- import java.beans.PropertyEditorSupport;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import org.springframework.beans.propertyeditors.PropertiesEditor;
- import org.springframework.web.bind.WebDataBinder;
- import org.springframework.web.bind.annotation.InitBinder;
- public abstract class CustomDateConverter {
- @InitBinder
- public void InitBinder(WebDataBinder dataBinder){
- dataBinder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
- public void setAsText(String value) {
- try {
- if(value.length() > 16)
- {
- setValue(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(value));
- }else if(value.length() > 10){
- setValue(new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(value));
- }else{
- setValue(new SimpleDateFormat("yyyy-MM-dd").parse(value));
- }
- } catch(ParseException e) {
- setValue(null);
- }
- }
- public String getAsText() {
- return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format((Date) getValue());
- }
- });
- //double类型
- dataBinder.registerCustomEditor(double.class, new DoubleEditor());
- }
- }
- class DoubleEditor extends PropertiesEditor {
- @Override
- public void setAsText(String text) throws IllegalArgumentException {
- if (text == null || text.equals("")) {
- text = "0";
- }
- setValue(Double.parseDouble(text));
- }
- @Override
- public String getAsText() {
- return getValue().toString();
- }
- }