SpringMVC杂项学习(三)

来源:互联网 发布:linux 查找文件命令 编辑:程序博客网 时间:2024/05/19 20:42

自定义视图

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 注解方法


原创粉丝点击