SpringMVC下半篇之异常处理器及日期转换器

3.异常处理器

如果不加以异常处理,错误信息肯定会抛在浏览器页面上,这样很不友好,所以必须进行异常处理。

3.1.异常处理思路

系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:

3.2.创建异常处理器

java 复制代码
@Component
public class CustomExceptionResolver implements HandlerExceptionResolver {

	@Override
	public ModelAndView resolveException(HttpServletRequest request,
					HttpServletResponse response, Object handler, Exception ex) {
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.addObject("message", ex.getMessage());
		modelAndView.setViewName("error");
		return modelAndView;
	}

}

3.3.测试

  • 编写controller
java 复制代码
@Controller
@RequestMapping("/account")
public class AccountController {

   @RequestMapping("/findAccount14")
    public String findAccount14(Model model) {
        model.addAttribute("msg", "欢迎你 springmvc");
        //模拟异常信息
        int i = 10/0;
        return "success";
    }
}
  • 在index.jsp里面定义超链接
html 复制代码
<a href="/account/findAccount14">异常处理器</a>

5.日期转换器

5.1.自定义日期转换器

java 复制代码
public class DataConvert implements Converter<String, Date> {
 
      /***
     * 配置时间转换类
     * @param date
     * @return
     */
    @Override
    public Date convert(String date) {
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return sdf.parse(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

5.2.1.配置自定义日期转换器

xml 复制代码
<!--注册类型转换器:处理器映射器去调用convertionServiceBean-->
<mvc:annotation-driven conversion-service="convertionServiceBean"/>
 
 <!-- 配置转换器 -->
 <bean id="convertionServiceBean" 
       class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
     <property name="converters">
         <set>
             <bean class="com.by.converter.DataConverter"></bean>
         </set>
     </property>
 </bean>
相关推荐
ClouGence16 分钟前
SAP HANA 到 Doris 数据迁移:4 种方案对比与迁移教程
数据库·后端·dba
LVZ19 分钟前
用了半年 AI 写代码,最烦的不是代码,是环境
前端·后端·开源
云边有个稻草人25 分钟前
从一条危险的 WHERE 条件说起:金仓数据库逻辑安全警示
后端
用户77139702070626 分钟前
从一脸懵到熟练使用:我的C#CAD二次开发日常中那些“反人类“的循环技巧
后端
JaneConan1 小时前
鸿蒙报错速查:arkts-no-any any 类型禁用,用了就炸,根因 + 真解法
后端·harmonyos
颜酱1 小时前
# 02 | 搭骨架:用 LangGraph 编排 12 步工作流(思路)
前端·人工智能·后端
颜酱1 小时前
02 | 搭骨架:用 LangGraph 编排 12 步工作流
前端·人工智能·后端
嘉伟桑3 小时前
Python调用电价API返回JSON示例:分时电价、现货电价和字段解析
后端
武子康3 小时前
Shippy:确定性工具、会话级 Sandbox 与 Live-Data Eval(4 类收敛 + 7 步实现方案 + 6 类评测指标)
前端·人工智能·后端
我叫黑大帅3 小时前
我为什么单一消费者的场景下,要用 Redis List 当消息队列?
redis·后端·面试