`

3.3springmvc-异常体系基本使用

阅读更多

这几天在完成一些基本添删改查功能,说实话这个还是比struts2要烦很多呀,因为struts2中有validate功能,使用契约模式,凡是以validateXXX(其中XXX是方法名),在执行XXX前会先执行,这样等于是个pre-check,并且还能起到一些参数的初始化能力。

 

可惜在springmvc中,只有一个@initbinder,他如同一个全局函数,与WebDataBinder绑定。不过他也有个毛病,就是在我的requestMapping方法参数中必须添加一个entity类型的,才会触发initbinder的函数。

 

回来说下,这个springmvc基本上可以把异常分成两类:

 

  • 一类是有用户自己在try catch块中定义的
对于,这类spring到时提供了很好的解决方法,那就是
/**
	 * 文章id不正确
	 * @param bindingResult
	 * @param defaultPage
	 * @return
	 */
	@ExceptionHandler(ObjectNotFoundException.class)
	public ModelAndView handleNotFoundEx(BindingResult bindingResult, String defaultPage) {
		if(bindingResult == null) return handleErrors(defaultPage);
		return handleErrors(bindingResult, defaultPage);
	}
 @ExceptionHandler这个还是挺好额,具体的spring自带的pdf中有说明,不过可惜,他不能支持如同:
@ExceptionHandler({xxx.class,xxx.class})
  • 一类是由spring内置的
比如在用@PathVariable Long id时,如果id无法转换为long就会抛出一个typemis什么spring内置exception,这个实在很早很早还没有进入你的controller时就产生了,这时他调用的是在xxx-servlet.xml文件中定义的exception handler来处理。

<!-- Mapping exception to the handler view -->
    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    	<!-- to /commons/error.jsp -->  
		<property name="defaultErrorView" value="/commons/error"/>
        <property name="exceptionMappings">
            <props>
            </props>
        </property>
    </bean>
 这里的exceptionMappings是能让你对应不同的exception,来进行处理的。不过具体代码还没有仔细看,spring自带的好像写得也不是很详细了
只好自己研究了。呵呵


 

分享到:
评论
1 楼 bfttt999 2011-09-29  
LZ,看到你的这句话:
    可惜在springmvc中,只有一个@initbinder,他如同一个全局函数,与WebDataBinder绑定。不过他也有个毛病,就是在我的requestMapping方法参数中必须添加一个entity类型的,才会触发initbinder的函数。

我也正被这个问题困扰,@InitBinder 死活不能触发,查了好多资料都没有说明这个情况,正在怀疑是否Spring3.05的bug。

请教一下,该如何正确写   requestMapping方法参数 才能触发,能给个实例吗?谢谢!

相关推荐

    SpringMVC ---- HelloWorld ---- 代码

    SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- Hello...

    SpringMVC-Mybatis-Shiro-redis

    在SpringMVC-Mybatis-Shiro-Redis体系中,Shiro负责用户登录验证、权限控制和会话管理。开发者可以方便地定义角色和权限,实现细粒度的访问控制,保障系统的安全性。 Redis则作为一个高性能的键值存储系统,常用于...

    SpringMVC-Mybatis-Shiro-redis-0.2-master

    基于SpringMVC Mybatis Shiro Redis 的权限管理系统,该系统已经部署到线上,线上访问地址:http://shiro.itboy.net,登录账号:admin 密码:sojson,,详细教程参考sojson.com/shiro

    网上书城项目(采用框架Spring-SpringMVC-MyBatis).zip

    这是一个网上书城项目,采用当前最流行的框架Spring-SpringMVC-MyBatis设计,主要是对之前用Jsp/Servlet做的一些优化,重构了整个系统,感觉还不错,学到了很多新的知识,能对SSM框架熟练的运用了。 这是一个网上...

    SpringMVC-Activiti5.16-Shiro-EasyUI项目整合

    《SpringMVC-Activiti5.16-Shiro-EasyUI项目整合详解》 在现代企业级应用开发中,高效、安全、易用是至关重要的考量因素。SpringMVC、Activiti、Shiro和EasyUI这四个技术组件的整合,正是为了实现这样的目标。这篇...

    ssm-springMVC-整合Quartz(解决了无法注入service问题).doc

    ssm-springMVC-整合Quartz(解决了无法注入service问题).doc

    swagger-springmvc-1.0.2

    5. **Sources jar**:`swagger-springmvc-1.0.2-sources.jar`则包含了源代码,这对于开发者调试和学习库的内部实现非常有帮助。通过源码,开发者可以深入理解库的工作原理,以及如何自定义和扩展其功能。 6. **核心...

    SpringMVC-Activiti5.16-Shiro-EasyUI.zip

    这个压缩包文件“SpringMVC-Activiti5.16-Shiro-EasyUI.zip”显然包含了使用这些技术构建的一个完整或部分的应用系统。让我们详细探讨一下每个组件及其在实际开发中的应用。 **1. SpringMVC** SpringMVC是Spring...

    微信 java weixin-java-tools-springmvc-master

    微信 java weixin-java-tools-springmvc-master 微信 java weixin-java-tools-springmvc-master

    SpringMVC->自我实现底层机制(吃透springMVC)配套代码

    SpringMVC---->自我实现底层机制(吃透springMVC)配套代码 SpringMVC---->自我实现底层机制(吃透springMVC)配套代码 SpringMVC---->自我实现底层机制(吃透springMVC)配套代码 SpringMVC---->自我实现底层机制...

    spring-springMVC-mybatis框架基本代码代码

    标题 "spring-springMVC-mybatis框架基本代码代码" 提示我们关注的是一个集成Spring、SpringMVC和MyBatis的Java开发基础架构。这个框架组合通常被称为SSM(Spring、SpringMVC、MyBatis),是Java后端开发中的常见...

    springmvc-mybatis 整合druid多数据源配置读写实现读写分离,windows上mysql主从复制

    首先,让我们了解SpringMVC、MyBatis和Druid的基本概念。SpringMVC是Spring框架的一部分,用于处理HTTP请求和响应,提供模型-视图-控制器(MVC)架构。MyBatis是一个轻量级的持久层框架,它将SQL语句与Java代码解耦...

    Spring-SpringMvc-Mybatis

    《Spring-SpringMvc-...总结,Spring-SpringMVC-Mybatis的整合使用,不仅简化了Java Web应用的开发,也提供了强大的功能支持。通过深入学习和实践,开发者可以掌握企业级应用开发的关键技术,提升自身的技术水平。

    基于Spring-SpringmVC-mybatis的网上聊天室

    基于Spring-SpringmVC-mybatis的网上聊天室。 实现基于spring_springmvc-mybatis websocket用户登录,在线聊天功能,仿微信的聊天方式。 springmvc 在线聊天 websocket。

    springmvc-springioc-lib.rar

    springmvc-springioc-lib.rar springmvc-springioc-lib.rar

    springmvc-base-input-02.rar

    总之,"springmvc-base-input-02" 项目涵盖了 Spring MVC 的基本输入处理,包括依赖管理、请求分发、模型绑定、数据验证和异常处理等关键概念。通过深入研究这个项目,开发者可以进一步理解如何构建一个健壮的、处理...

    springmvc-helloworld

    本教程将通过 "springmvc-helloworld" 这个示例项目,帮助你了解如何搭建 SpringMVC 环境以及其工作原理。 ### 一、SpringMVC 架构 SpringMVC 的核心组件包括 DispatcherServlet、Model、ViewResolver 和 ...

    springmvc-high-other-05.rar

    《SpringMVC高级应用探索——其他重要...以上只是SpringMVC高级特性的一部分,通过深入学习和实践"springmvc-high-other-05.rar"中的内容,我们可以进一步提升SpringMVC的使用技巧,构建出更高效、更健壮的Web应用。

    SpringMVC-Mybatis-Shiro-redis-0.2_baichengzhou.tar.gz

    《SpringMVC-Mybatis-Shiro-Redis整合实践详解》 在现代Web开发中,SpringMVC、Mybatis、Shiro以及Redis等技术是构建高效、安全、可扩展的Web应用的重要组件。本文将深入探讨这些技术的集成与应用,以"SpringMVC-...

    基于SSM(Spring-SpringMVC-MyBatis)的高级整合(增删改查功能)) 商品系统

    此资源是基于SSM(Spring+SpringMVC+MyBatis)的高级整合,项目中利用前端框架bootstrap快速搭建简洁优美的界面,进行对mysql的增,删,改,查的基础操作。是一个非常适合新手学习的例子!!商品系统导入可用留言我可...

Global site tag (gtag.js) - Google Analytics