原因:
页面输入的日期格式BeanUtils工具类无法将其进行转换。
报错日志如下:
<!doctype html><html lang="en"><head><title>HTTP Status 500 – Internal Server Error
</title><style type="text/css">h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 500 – Internal Server Error</h1><hr class="line" /><p><b>Type</b> Exception Report</p><p><b>Message</b> DateConverter does not support default String to 'Date' conversion.</p><p><b>Description</b> The server encountered an unexpected condition that prevented it from fulfilling the request.</p><p><b>Exception</b></p><pre>org.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion.
org.apache.commons.beanutils.converters.DateTimeConverter.toDate(DateTimeConverter.java:474)
org.apache.commons.beanutils.converters.DateTimeConverter.convertToType(DateTimeConverter.java:347)
org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:169)
org.apache.commons.beanutils.converters.ConverterFacade.convert(ConverterFacade.java:61)
org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:491)
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1002)
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:821)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:431)
com.explam.servlet.RegisterServlet.doPost(RegisterServlet.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.explam.Filter.CharchaterFilter.doFilter(CharchaterFilter.java:27)
</pre><p><b>Note</b> The full stack trace of the root cause is available in the server logs.</p><hr class="line" /><h3>Apache Tomcat/8.5.31</h3></body></html>
解决:
加入下面三行代码即可解决。
//注意:要写在BeanUtils.populate(user,map)的上边
DateConverter converter = new DateConverter();
converter.setPattern(new String("yyyy-MM-dd"));
ConvertUtils.register(converter, Date.class);