Java开发之SSM企业轻量级开发框架

SpringMVC

异常处理
介绍:
Spring MVC中提供了一套通用的异常处理方案,利用这套异常处理方案可以有效的处理Web项目中的异常.
原理:
SpringMVC提供了HandlerExceptionResolver接口,并提供多个用于不同场景的实现类.通过捕获 程序产生的异常,并将该异常与Spring容器中的异常处理对象匹配.匹配成功后,由异常处理对象的方法进行异常处理,并返回视图和异常信息.
HandlerExceptionResolver实现类:

	AnnotationMethodHandlerExceptionResolver[未配置<mvc:annotation-driven/>时,使用]
	ExceptionHandlerExceptionResolver [配置<mvc:annotation-driven/>时,使用]
	ResponseStatusExceptionResolver [始终使用]
	DefaultHandlerExceptionResolver [始终使用]
	SimpleMappingExceptionResolver [需要在配置文件中注册,才能使用]
	说明: DispatcherServlet默认装配HandlerExceptionResolver

ExceptionHandlerExceptionResolver
介绍:
ExceptionHandlerExceptionResolver用于解析@ExceptionHandler标注的异常处理方法,在异常处理方法中可以将异常传到指定页面.
@ExceptionHandler作用:
1.@ExceptionHandler捕获的异常可以是系统的或自定义的.
2.@ExceptionHandler捕获异常并交给标注方法处理后,后台将不再显示默认异常信息.
3.若@ExceptionHandler未捕获到当前异常类型,将按照系统默认方式处理[抛出异常,显示异常信息]

优先级:
1.当处理方法发生异常时,优先将异常交给本类中@ExceptionHandler标注的方法.
2.若本类含有多个@ExceptionHandler标注的方法,异常将交给最接近异常类型的方法.
3.若本类中没有@ExceptionHandler标注的方法,将交给@ControllerAdvice标注类中的@ExceptionHandler标注的方法.

SimpleMappingExceptionResolver:
介绍:
SimpleMappingExceptionResolver以配置文件方式,注册将要捕获的异常[系统或自定义异常],并指出捕获异常后转向的视图.
开发步骤:[只需编写SpringMVC配置文件即可]

	<bean id="匿名" class="SimpleMappingExceptionResolver类全名">
		<!-- 定义存入到request容器时的名称: 默认名称为"exception" -->
		<property name="exceptionAttribute" value="匿名" />
		<!-- 定义捕获的异常 -->
		<property name="exceptionMappings">
			<props>
				<prop key="异常类全名1" >视图1</prop>
				<prop key="异常类全名2" >视图2</prop>
				......
			</props>
		</property>
	</bean>

JSON处理
|----fastjson下返回JSON:
第1步: 添加jar包
SpringMVC基本jar
fastjson-1.2.13.jar

第2步: 编写SpringMVC配置文件
在SpringMVC配置文件常规配置下,添加<mvc:annotation-driven />
第3步: @ResponseBody和@RequestMapping标注处理方法

注意: 返回值为 JSON字符串 或 POJO/集合对象[注册FastJSON解析器]

第4步: 编写页面,访问JSON请求
使用Ajax请求JSON,也可以直接请求JSON[数据会直接展示到页面上]

|-----乱码处理:
局部处理:
@ResponseBody
@RequestMapping(value = “/test1”,produces = {“application/json;charset=UTF-8”})
处理方法声明…
全局处理:

    <mvc:annotation-driven>
        <!--注册消息转换器-->
        <mvc:message-converters>
            <!--注册字符串消息转换器-->
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

|-----日期处理:
局部处理:
@JSONField(format=“日期格式”)
private Date 属性名;
注意: 被解析的日期数据,必须位于String类型的JSON数据中.

全局处理:
1.处理方法的返回值必须为POJO/集合对象,不能是字符串格式的JSON数据[无法确定字符串中哪些数据是日期数据].
2.无法自定义全局日期处理时的日期格式,只能使用FastJSON默认的日期格式: yyyy-MM-dd HH:mm:ss

        <mvc:annotation-driven>
            <!--注册消息转换器-->
            <mvc:message-converters>
                <!--注册FastJSON消息转换器-->
                <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                    <property name="features">
                        <list>
                            <value>WriteDateUseDateFormat</value>
                        </list>
                    </property>
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值