springMVC入门-2.数据格式转换
来源:互联网 发布:js面向对象怎么理解 编辑:程序博客网 时间:2024/05/22 16:52
1.springMVC的参数绑定:
把从客户端获取的参数数据绑定到controller方法的形参上.
2. Spring的数据绑定过程:
SpringMVC所有的参数封装(ServletRequest)到WebDataBinder组件中,ConversionService组件进行数据的转换和格式化,数据验证(validator) ,springMVC的类型转换来说,我们所需要的大部分的数据类型转换(基本类型的数据转换)他已经给实现了可以详见ConversionService这个接口2.5版本之前支持 String ---Date的自动转换3.0 + 需要 显示的进行数据类型转换器的定义Spring类型对于Date类型的转换有两种方式 1) 实现Converter接口实现String-date 2) 需要在目标类的属性上添加@dateTimeFormat注解即可
3. SpringMVC的自定义数据转换类型的步骤
1)实现Converter接口
@Componentpublic class DateConverter implements Converter<String, Date> { @Override public Date convert(String string) { Long l=Long.parseLong(string); if(l!=null){ Date date=new Date(l); return date; } return null; }}
2)需要组件扫描器进行对类型转换组件的扫描
mvc:annotation-driven
3)配置类型转换器组件,将自定义的类型转换器纳入到conversionService组件中
<!-- 组件扫描器 --><mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="dateConverter" /> </set> </property></bean>
- SpringMVC的Converter formatter接口
Converter是万能的(后台)把任何的源类型转换为目标类型 Formatter主要用于页面的转换(前台)而且源类型必须是String类型的
<!-- 组件扫描器 --><mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven><bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="dateConverter"/> </set> </property></bean>
5 SpringMVC的数据模块进行输出数据时,如果使用的是ModelAndView,那么model中的数据会放到request作用域中。
6 SpringMVC处理输入模型的第二种方式是在目标方法的入参处使用map类型结合接受数据,默认下会放置到request作用域中
注意存放的不是map,而是所有的键值对
7 SpringMVC同样支持redirect和forward ,需要使用关键字:的方式调用,而且必须是在返回值为String类型情况下使用。
8 SpringMVC使用View接口进行自定义视图的定义,可以使用getContextType来设定将要放回的视图的类型
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"> <property name="order" value="100"></property></bean>
@Componentpublic class TestView implements View { @Override public String getContentType() { return "image/jpeg"; } @Override public void render(Map<String, ?> arg0, HttpServletRequest request, HttpServletResponse response) throws Exception { ServletContext context=request.getServletContext(); InputStream input=context.getResourceAsStream("/img/test.jpg"); ServletOutputStream out=response.getOutputStream(); System.out.println(input); int i=0; while(-1!=(i=input.read())){ out.write(i); } out.close(); input.close(); }} @RequestMapping("/getImg") public String getImg(){ return "testView"; }
阅读全文
0 0
- springMVC入门-2.数据格式转换
- SpringMVC数据格式转换
- springMVC数据格式转换的三种实现
- 数据格式转换
- SpringMVC数据格式转换报错:rejected value [065966] error in object 'command' on field 'imgNumber'
- 数据格式转换(转载)
- 数据格式转换专题
- 数据格式介绍和转换
- 常见数据格式的转换
- C#数据格式转换
- c++ 数据格式转换代码
- stingstream的数据格式转换
- GPS数据格式转换
- 不同数据格式转换
- Mahout0.6-数据格式转换
- QT各种数据格式转换
- GPS数据格式转换
- OpenCV数据格式转换
- 网络编程之I/O模型(以吃牛肉面为例)
- paho-mqtt 文档翻译
- 如何设置在jsp页面高亮显示选中的相同标签
- Android Studio 获取Md5,SHA1值 绝对没毛病
- Java 文件级动态编译
- springMVC入门-2.数据格式转换
- 论文阅读:《Deep Image Matting》CVPR 2017
- Docker私有仓库的搭建与使用
- 剑指offer每日一刷-2017年11月16日
- selenium介绍和环境搭建
- java各种读取properties文件方法
- 学习MARKDOWN(欢迎使用CSDN-markdown编辑器)
- Android 打开应用市场中的某个应用下载页面
- dubbo配置详解