日期类型转换器

  • (1)springMVC默认不支持页面上的日期字符串到后台的Date的转换
    url?date=2020-02-02 方法(Date date)
  • (2)可以有两种方式
    》》配置全局日期转换器
    》》配置日期转换注解

在这里插入图片描述

StringToDateConverter

/**
 * 日期类型转换器
 * 泛型一:源类型
 * 泛型二:目录类型
 */
public class StringToDateConverter implements Converter<String,Date>{
    
    
    @Override
    public Date convert(String source) {
    
    
        Date date = null;
        try {
    
    
            date = new SimpleDateFormat("yyyy-MM-dd").parse(source);
        } catch (ParseException e) {
    
    
            e.printStackTrace();
        }
        return date;
    }
}

spring/springmvc.xml

  <!--配置类型转换器-->
    <!--1.创建类型转换器对象-->
    <bean id="stringToDateConverter" class="com.wzx.web.converter.StringToDateConverter"/>

    <!--2.把转换器对象放入SpringMVC转换器工厂中-->
    <bean id="conversionServiceFactory" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <ref bean="stringToDateConverter"/>
            </set>
        </property>
    </bean>

    <!--3. 把转换器工厂放入到注解驱动,才会生效的 @RequestMapping @ResponseBody @RequestBody-->
    <mvc:annotation-driven conversion-service="conversionServiceFactory" />

测试CompanyController

    @RequestMapping(path="/testDate.do",method = RequestMethod.GET)
    public String testDate(Date date){
    
     //该参数接收浏览器提交的日期字符
        l.info("testDate date="+date);
        return "result";
    }

统一异常处理

  • (1)在Java代码中,如何处理异常?
    try-catch
public class TestTryCatch {
    
    

    @Test
    public void test01(){
    
    
        //Ctrl+Alt+T
        try {
    
    
            int num = 0;
            System.out.println("Hello");//1
            System.out.println(1/num);//异常 -->catch
            System.out.println("World");
        } catch (Exception e) {
    
    //执行处理异常的代码
            e.printStackTrace();
        }
    }
}
  • (2)HandlerExceptionResolver是什么?
    spring-mvc中的统一异常处理器
    如果控制器方法中有未捕获的异常抛出,可能导致程序将异常抛给用户 此时,此时可以使用统一异常处理器
  • (3)使用
    》》实现接口
    》》spring配置
    》》测试

MyExceptionResolver

//1:实现接口
public class MyExceptionResolver implements HandlerExceptionResolver {
    
    
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
    
    
         //Exception e 表示由程序抛出来的异常
        //返回值 为什么是 ModelAndView?  添加数据 再将数据显示在指定页面
        ModelAndView mv = new ModelAndView();
        mv.addObject("exception",e.getMessage());//添加异常信息
        mv.setViewName("error");//指定一个显示错误的美观页面
        return mv;
    }
}

spring/springmvc.xml

 <!--2 注册 -->
    <bean id="myExceptionResolver" class="com.wzx.web.exceptions.MyExceptionResolver"/>

测试

  @RequestMapping(path="/testDate.do",method = RequestMethod.GET)
   public String testDate(Date date){
    
     //该参数接收浏览器提交的日期字符
       l.info("testDate date="+date);
       int num = 1/0;
       return "result";
   }

猜你喜欢

转载自blog.csdn.net/qq_37924905/article/details/109245827