springmvc的类型转换器converter
这个convter类型转换是器做什么用的?
他是做类型转换的,或者数据格式化处理。可以把数据在送到controller之前做处理。变成你想要的格式或者类型。方便我们更好的使用。
比如说你从前台传过来一个日期,它的格式不是你想要的,这时你就可以自定义一个controller转换器,帮你做日期格式化这件事。就像我们以前,
写的工具类一样,只不过,springmvc给我们提供了这种功能,在更方便我们使用。在需要时自动帮我们做这件事了。接下来看看它是怎样实现的?
这里演示把一个string字符串转换成一个对象。格式话就更简单了。根据你的想象大胆的设计它,帮你更好的完成工作。
首先我们来定义目标类,目标类就是要转换成该类型的对象。
定义一个bean,MyPhone,他有俩属性areaCode(区号),phoneNum(电话号码),给他们getter和setter方法。ok,这个bean定义好了。
接下来定义一个中转模型,这个模型就是做数据类型转换或者是数据格式化的中转。定义一个modelBean,UserModel,把目标类的对象MyPhone给他,给他getter
和setter方法,ok,这个bean定义好了。
下面是核心,自定义,转换器。要完成这样一个操作我们要使用springmvc给我们提供的一个接口,Converter,我们要实现这个接口并且给他一个泛型,
Converter<被转换类型,转换成的类型>,然后按你的构思实现他的方法convert,去让他帮你完成你想要干的事。
/**
* @目标类型作为模型类的属性,我们前面定义好了。
* @这里将完成把String型数据转为目标类型的操作
* @转换器关键代码 实现String转MyPhone @如010-234234324 转为MyPhone
*/
public class MyConverter implements Converter<String, MyPhone> {
@Override
public MyPhone convert(String source) {
System.out.println("转换了没?");
MyPhone phone = new MyPhone();
//将字符串按照某种规则拆分成字符串数组
String[] strArr = source.split("-");
String areaCode = strArr[0];
String phoneNum = strArr[1];
phone.setAreaCode(areaCode);
phone.setPhoneNum(phoneNum);
return phone;
}
// 参数是源类型(要转换的字符串),返回的是目标类型
}
这是controller的写法,这里说一下中转模型吧,它的属性名是触发类型转换的关键。你想要转换就拿这个模型作为controller的入参就OK了。
@Controller
@RequestMapping("/xx")
public class Example4Controller {
@RequestMapping("/example")
public String toSuccessPage(UserModel user, Model model) {
System.out.println("阿呆的挂念");
model.addAttribute("user", user);
return "example4";
}
}
最后一步,在spirngmvc.xml中注册转换器。springmvc的ConversionServiceFactoryBean类会帮我们把转换器,在HandlerMapping组件将url分配给controller之前执行转换器。
<!-- springmvc注解驱动标签,引入转换器 -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<!-- 注册转换器,并注入自定义的转换器 -->
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.xxx.util.MyConverter" />
</list>
</property>
</bean>
ok这样一个流程写完你可以用了。
springmvc的类型转换器converter的更多相关文章
- SpringMVC自定义类型转换器
SpringMVC 自定义类型转换器 我们在使用SpringMVC时,常常需要把表单中的参数映射到我们对象的属性中,我们可以在默认的spring-servlet.xml加上如下的配置即可做到普通数据 ...
- 《SpringMVC从入门到放肆》十二、SpringMVC自定义类型转换器
之前的教程,我们都已经学会了如何使用Spring MVC来进行开发,掌握了基本的开发方法,返回不同类型的结果也有了一定的了解,包括返回ModelAndView.返回List.Map等等,这里就包含了传 ...
- 14.SpringMVC核心技术-类型转换器
类型转换器 在前面的程序中,表单提交的无论是 int 还是 double 类型的请求参数,用于处理该请求 的处理器方法的形参, 均可直接接收到相应类型的相应数据,而非接收到 String 再手工转换. ...
- springmvc——自定义类型转换器
一.什么是springmvc类型转换器? 在我们的ssm框架中,前端传递过来的参数都是字符串,在controller层接收参数的时候springmvc能够帮我们将大部分字符串类型的参数自动转换为我们指 ...
- 自定义类型转换器converter
作用:目前将日期转换成string,将string转换成我想要的类型 0509课件里讲 一.数据类型转换在web应用程序中,数据存在两个方向上的转换:1.当提交表单时 表单数据以字符串的形式提交 ...
- SpringMVC 自定义类型转换器
先准备一个JavaBean(Employee) 一个Handler(SpringMVCTest) 一个converters(EmployeeConverter) 要实现的输入一个字符串转换成一个emp ...
- JavaPersistenceWithHibernate第二版笔记-第五章-Mapping value types-006类型转换器( @Converter(autoApply = true) 、type="converter:qualified.ConverterName" )
一.结构 二.代码 1. package org.jpwh.model.advanced; import java.io.Serializable; import java.math.BigDecim ...
- SSM-SpringMVC-28:SpringMVC类型转换之自定义日期类型转换器
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 例子很简易,要明白的是思路,话不多说,开讲 上篇博客不是说springmvc默认的日期转换格式是yyyy/M ...
- springmvc:自定义类型转换器代码编写
字符串转换日期: 1.自定义一个类 /** * 字符串转换日期 */ public class StringToDateConverter implements Converter<String ...
随机推荐
- 五款app原型设计工具对比
五款app原型设计工具对比 Proto.io, Pixate, Origami, Framer & Form 本文由Panblack 翻译,原文作者 Tes Mat 我用五款“高保真”原型设计 ...
- Qt删除文件夹
写的软件需要进行文件夹的复制,开始不怎么懂就找了个拷贝文件夹的代码测试了一下,运行程序选择了源目录和目标目录相同进行拷贝,结果悲剧了.因为是递归拷贝,导致文件夹被嵌套N层,软件死机,强制结束后,产生的 ...
- C#程序集
我的理解: 程序集是一个物理上的概念,一个项目生成的exe或者dll都可以叫做一个程序集,internal修饰的内容可以在程序集内可见.
- aiohttp模块1 client
Make a Request import aiohttp async with aiohttp.ClientSession() as session: async with session.get( ...
- harbor使用aws s3存储
参考:http://www.vmtocloud.com/how-to-configure-harbor-registry-to-use-amazon-s3-storage/ s3 bucket权限:更 ...
- 深度剖析hdfs原理
大数据底层技术的三大基石起源于Google在2006年之前的三篇论文GFS.Map-Reduce. Bigtable,其中GFS.Map-Reduce技术直接支持了Apache Hadoop项目的诞生 ...
- 2018.11.9 Dubbo入门学习
1.什么是Dubbo dubbo.io 代表是开源的 DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服 ...
- PHP处理数组和XML之间的互相转换
PHP将数组转换成XML PHP可以将数组转换成xml格式,简单的办法是遍历数组,然后将数组的key/value转换成xml节点,再直接echo输出了,如: function arrayToXml($ ...
- <jsp:include>和<%@include file=""%>的区别(简单了解)
简单了解 include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改.由于被包含的文件是在编译时才插入的 ...
- 【luogu P1402 酒店之王】 题解
题目链接:https://www.luogu.org/problemnew/show/P1402 菜 #include <queue> #include <cstdio> #i ...