SpringMVC杂项学习(三)

自定义视图

1.自定义视图,实现view接口或者继承AbstractView抽象类,并通过@Component加入到IOC容器中。

2.在springmvc配置文件中配置BeanNameViewResolver视图解析器。

<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="100"></property>
</bean> -->

数据格式化标签

1.在SpringMVC配置文件中配置<mvc:annotation-driven/>

2.在目标POJO对象的属性上加上@NumberFormat 或者 @DateTimeFormat 注解

数据类型转换

1. 自定义类型转换器(eg:EmployeeConverter)实现Converter<S,T>接口并加入到SpringMVC的IOC容器中;(使用@Component注解)

2.配置自定义转换器到FormattingConversionServiceFactoryBean工厂中!

<!-- 将ConversionService再作为annotation-driven的一个属性存在! -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<!-- 配置ConversionService -->
	<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
		<property name="converters">
			<set>
			<ref bean="employeeConverter"/>
			</set>
		</property>
	</bean>

SpringMVC如何处理JSON数据

 1.加入json的jar包

 2. 编写目标方法,使其返回 JSON 对应的对象或集合

 3. 在方法上添加 @ResponseBody 注解

文件上传

1.加入上传文件的jar包

2.在SpringMVC配置文件中配置CommonsMultipartResovler

<!-- 配置CommonsMultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<property name="defaultEncoding" value="utf-8"></property>
	<!-- 以字节为单位 -->
	<property name="maxUploadSize" value="1024000"></property>
</bean>

文件下载

用ResponseEntity<byte[]> 返回值完成文件下载

自定义拦截器:

1.自定义实现类实现 HandlerInterceptor接口

preHandle():该方法在目标方法之前被调用,

若返回值为true,则继续调用后续的拦截器和目标方法

若返回值为false,则不会再调用后续的拦截器和目标方法

可以考虑做权限,日志或者事务等!


postHandle():调用目标方法之后,但渲染视图之前被调用

    可以对请求域中的属性或者视图做出修改!


afterCompletion():渲染视图之后被调用,

 可以在该方法中进行一些资源清理的操作。

2.在springmvc配置文件中配置相对应的拦截器

<mvc:interceptors>
<!--配置自定义拦截器 ,所有的路径都拦截 -->
	<bean class="com.neuedu.springmvc.filter.MyFilter"></bean>
	<!-- 关于拦截器的配置问题 ,可以通过<mvc:interceptor>来配置使用哪个拦截器来【不】拦截的路径-->
	<mvc:interceptor>
	<!-- 用<mvc:mapping>标签指定要拦截的路径   用mvc:exclude-mapping指定不拦截的路径-->
		<mvc:mapping path="/employ"/>
		<!-- 指定使用哪个拦截器进行拦截 -->
		<bean class="com.neuedu.springmvc.filter.SecondFilter"></bean>
	</mvc:interceptor>
</mvc:interceptors>

SpringMVC的异常处理:

1.加上<mvc:annotation-driven>标签:

2.在当前Handler中定义由@ExceptionHandler注解修饰的方法,用于处理异常信息!

>>>@ExceptionHandler方法修饰的入参中可以加入Exception类型的参数,该参数即对应发生的异常信息

>>>@ExceptionHandler方法的入参中不能传入Map.若希望把异常信息传到页面上,需要使用ModelAndView作为方法的返回值。   

3.@ExceptionHandler 注解定义的方法优先级问题:会根据异常的最近继承关系找到继承深度最浅的那个 @ExceptionHandler 注解方法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值