日期类型转换器
(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
< bean id = " stringToDateConverter" class = " com.wzx.web.converter.StringToDateConverter" />
< bean id = " conversionServiceFactory" class = " org.springframework.context.support.ConversionServiceFactoryBean" >
< property name = " converters" >
< set>
< ref bean = " stringToDateConverter" />
</ set>
</ property>
</ bean>
< 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 ( ) {
try {
int num = 0 ;
System. out. println ( "Hello" ) ;
System. out. println ( 1 / num) ;
System. out. println ( "World" ) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
}
}
}
(2)HandlerExceptionResolver是什么? spring-mvc中的统一异常处理器 如果控制器方法中有未捕获的异常抛出,可能导致程序将异常抛给用户 此时,此时可以使用统一异常处理器
(3)使用 》》实现接口 》》spring配置 》》测试
MyExceptionResolver
public class MyExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException ( HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
ModelAndView mv = new ModelAndView ( ) ;
mv. addObject ( "exception" , e. getMessage ( ) ) ;
mv. setViewName ( "error" ) ;
return mv;
}
}
spring/springmvc.xml
< 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" ;
}