码迷,mamicode.com
首页 > 编程语言 > 详细

spring MVC扩展和SSM整合

时间:2018-08-10 19:40:21      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:param   ted   rest   web   控制   dap   文件   显示   默认   

JSON对象的处理

简述@ResponseBody注解的用法

 @responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。@ResponseBody都会在异步获取数据时使用,被其标注的处理方法返回的数据将输出到相应流中,客户端获取并显示数据。

解决JSON数据传递的中文乱码问题 原因: 消息转换器(StringHttpMessageConverter)中固定了转换字符编码为“ISO-8859-1” 解决方案一: @RequestMapping(value="/view", method=RequestMethod.GET, produces={"application/json;charset=UTF-8"}) 简单实用,并可做到灵活处理

解决方案二 装配消息转换器StringHttpMessageConverter,设置字符编码为UTF-8 supportedMediaTypes属性 指定媒体类型:application/json 字符编码:UTF-8 一次配置,永久搞定

解决JSON数据传递的日期格式问题

日期格式:时间戳  “yyyy-MM-dd” 解决方案一: 注解方式:@JSONField(format= "yyyy-MM-dd")

解决方案二

配置FastJson的消息转换器-FastJsonHttpMessageConverter 设置features属性:指定输出时的日期转换器为WriteDateUseDateFormat FastJson规定了默认的返回日期类型DEFFAULT_DATE_FORMAT:yyyy-MM-dd HH:mm:ss故对于特殊类型字段,可使用@JSONField来控制

对于JSON数据中的日期格式处理(FastJson) 默认输出时间戳 转换输出yyyy-MM-dd HH:mm:ss格式的日期 配置消息转换器中的<value>WriteDateUseDateFormat</value> 注解优先( yyyy-MM-dd ) 配置消息转换器中的<value>WriteDateUseDateFormat</value> 增加属性注解@JSONField(format="yyyy-MM-dd")

配置多视图解析器2

<property name="mediaTypes">

  <map> <entry key="html" value="text/html;charset=UTF-8"/>

     <entry key="json" value="application/json;charset=UTF-8"/>

    <entry key="xml" value="application/xml;charset=UTF-8"/>

  </map>

</property>

ContentNegotiatingViewResolver favorParameter 默认为true,表示支持参数匹配,可以根据请求参数的值确定MIME类型,默认的请求参数为format,如: /user/view?id=12&format=json mediaTypes 根据请求参数值和MIME类型的映射列表 viewResolvers 网页视图解析器

通过ContentNegotiatingViewResolver,其中就达到了同一资源根据相同的URL地址访问,并通过设置MIME格式控制器端返回的数据格式,从而获取不同形式的返回内容。其实这REST的编程风格。

数据转换和格式化

在Spring MVC中时间数据无法实现自动转换绑定 解决方案 必须要进行手动配置自定义数据类型的绑定才能实现该功能 数据转换和格式化

数据绑定流程

技术分享图片

 

 

DataBinder 数据绑定的核心部件 核心调度 ConversionService Spring类型转换体系的核心接口 解决前台form表单中时间字符串到后台Date数据类型的转换问题 配置了<mvc:annotation-driven/>标签,并没有配置ConversionService,也能通过格式化注解来解决日期的转换问题 <mvc:annotation-driven/>标签 DefaultAnnotationHandlerMapping AnnotationMethodHandlerAdapter FormattingConversionServiceFactoryBean

注意:标注了@InitBinder注解的方法会在控制器初始化时调用

 SSM框架整合

新建Web Project,导入相关jar文件

配置web.xml

配置文件(/resources) database.properties

log4j.properties

mybatis-config.xml

  配置typeAliases

  设置全局性懒加载

  applicationContext-mybatis.xml

  springmvc-servlet.xml

applicationContext-mybatis.xml

 数据源相关配置

事务管理

配置SqlSessionFactoryBean

配置MapperScannerConfigurer

springmvc-servlet.xml

配置<mvc:annotation-driven/>标签(包括消息转换器配置)

通过<mvc:resources/>标签配置静态文件访问

配置支持文件上传- multipartResolver

配置多视图解析器-ContentNegotiatingViewResolver

配置拦截器-interceptors

  

基于HandlerMapping,对请求实施拦截,根据业务需求,基于不同的HandlerMapping定义多个拦截器

HandlerInterceptor接口 preHandle() postHandle() afterCompletion()

自定义拦截器的配置-SysInterceptor

 

spring MVC扩展和SSM整合

标签:param   ted   rest   web   控制   dap   文件   显示   默认   

原文地址:https://www.cnblogs.com/huangpeng3210/p/9456619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!