springmvc之类型转化器

类型转化器,需要在jsp上捕获到要转化的数据,然后交给控制器的参数,参数为要转化的格式

JSP

   


        ${exmsg}

        
        
    

控制器

    @RequestMapping("/data.do")
    public String doData(Date birthday){//Date birthday的Date使我们从jsp页面上对birthday获取到的值所要转化的格式
        System.out.println(birthday);
        return "/welcome";
    }
    
    @ExceptionHandler(TypeMismatchException.class)//控制器抛出来的异常会被这个方法捕获,并且执行
    public ModelAndView excepetion(HttpServletRequest request,Exception ex){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("ex",ex);
        String birthday =  request.getParameter("birthday");
        modelAndView.addObject("birthday",birthday);
        modelAndView.setViewName("/controller");
        
        return modelAndView;
    }

转化器

需要实现Converter<参数1,参数2>接口,参数1是我们获取的对象的值类型,参数2是我们要讲对象值转化为的类型

例如该例子的Date转化器

public class DateConverter implements Converter{
    @Override
    public Date convert(String arg0) {
        // TODO Auto-generated method stub
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
        if(arg0 != null&&!"".equals(arg0)){
            try {
                return simpleDateFormat.parse(arg0);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                throw new TypeMismatchException(arg0, Date.class);//arg0要匹配的值,Date.class要匹配的类型
            }
        }else{
            throw new TypeMismatchException(arg0, Date.class);
        }            
    }
}


springmvc.xml配置

   
    
    
    
        
    

 
    
     
        
        
    
 
    
    
    
    
    
        
    
    

   
        

你可能感兴趣的:(springmvc)