//日期的月份不能写成小写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;}