springMVC自定义类型转换器(date类型转换)

//日期的月份不能写成小写mm,因为在日期中还有分钟mm,这两者不能相同。

1.创建一个类实现Convert接口,实现convert方法

public date convert(String source){

  if(source!=null&&!source.equals(""){

    SimpleDateFormat sdf=getSimpleDateFormat(source);

    return sdf.parse(source);

  }

}

public Date getSimpleDateFormat(String source){

  SimpleDateFormat  sdf=new SimpleDateFormat();

  if(Pattern.matches("^//d{4}-//d{2}-//d{2}$",source){

    sdf.applayPattern("yyyy-MM-dd");

  }else if(Pattern.matches("^//d{4}///d{2}///d{2}$",source){

    sdf.applayPattern("yyyy/MM/dd");

  }else if(Pattern.matches("^//d{4}//d{2}//d{2}$",source){

    sdf.applayPattern("yyyyMMdd");

  }

  return sdf;

}

2.注册类型转换器

<bean id="typeConvert" class="刚才创建的类的路径"/>//由beanFactory去生成这个类

<bean id="convertionServiceBean" class="convertionServiceFactoryBean的全路径名">

 <!-- <property name="convert">

    <set>

      <ref bean="typeConvert"/>

      <ref bean="typeConvert2"/>

    </set>

  </property >-->多个转换类型的写法

</bean>

<property name="convert" ref="typeConvert"/>//这里只有一个可以这样写

处理器映射器去调用convertionServiceBean,当springMVC注解驱动被加载的时候,这个convertionServiceBean给了处理器映射器。所以要添加mvc注解驱动

<mvc:annotation-driven convertion-service="convertionServiceBean"/>

3.当填写错误时,给用户反映报错问题,并需要重新填写。

在自定义的处理器中添加一个注解式处理异常的方法

@ExceptionHandler

public  ModleAndView handlerException(Exception ex){

  ModleAndView  mv=new ModleAndView();
  mv.addObject("ex","ex.getMassage")
  mv.setViewName("xxx.jsp");出现异常后跳转到xxx.jsp
  return mv;
  

}

原文地址:https://www.cnblogs.com/liuna369-4369/p/10019524.html