Ⅵ.spring的点点滴滴--自定义类型转换器
承接上文
自定义类型转换器
.net篇(环境为vs2012+Spring.Core.dll v1.31)
public class CustomeConverter : TypeConverter{
public override bool CanConvertFrom(
ITypeDescriptorContext context,
Type sourceType){
return true;
}
public override object ConvertFrom(
ITypeDescriptorContext context,
System.Globalization.CultureInfo culture,
object value){
return new TypeCunstomer() { Name = value.ToString() };
}
}
public class TypeObject{
public TypeCunstomer Name { get; set; }
}
public class TypeCunstomer{
public string Name { get; set; }
}
<object
type="Spring.Objects.Factory.Config.CustomConverterConfigurer, Spring.Core">
<property name="CustomConverters">
<dictionary>
<entry key="SpringBase.TypeCunstomer">
<object type="SpringBase.CustomeConverter"/>
</entry>
</dictionary>
</property>
</object>
<object id="typeconvert" type="SpringBase.TypeObject,SpringBase">
<property name="Name" value="2"/>
</object>
- 继承中的CanConvertFrom方法是用于判断能否转换,ConvertFrom转换的具体方法
java篇(环境为Maven+Jdk1.7+IntelliJ IDEA 12.1.4)
package springdemo;
import java.beans.PropertyEditorSupport;
public class TypeObject {
private TypeCunstomer name;
public TypeCunstomer getName() {
return name;
}
public void setName(TypeCunstomer name) {
this.name = name;
}
}
class TypeCunstomer {
private String name;
String getName() {
return name;
}
void setName(String name) {
this.name = name;
}
}
class CustomeConverter extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
TypeCunstomer val=new TypeCunstomer();
val.setName(text+"Convent");
this.setValue(val);
}
}
<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="springdemo.TypeCunstomer">
<bean class="springdemo.CustomeConverter" />
</entry>
</map>
</property>
</bean>
<bean id="typeObject" class="springdemo.TypeObject">
<property name="name" value="1"/>
</bean>
- 重写setAsText方法,其中setValue的参数为object
java和Csharp的共同点
- 配置文件中的dictionary|map标签设置的key为要转换的类型,值为转换的方法类
- 都是继承一个对象,然后重写方法来自定义类型的转换
Ⅵ.spring的点点滴滴--自定义类型转换器的更多相关文章
- Ⅶ.spring的点点滴滴--自定义对象行为
承接上文 自定义对象行为 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class lifeCycle : Spring.Objects.Factory. ...
- 《SpringMVC从入门到放肆》十二、SpringMVC自定义类型转换器
之前的教程,我们都已经学会了如何使用Spring MVC来进行开发,掌握了基本的开发方法,返回不同类型的结果也有了一定的了解,包括返回ModelAndView.返回List.Map等等,这里就包含了传 ...
- 自定义类型转换器 及 使用 ServletAPI 对象作为方法参数
自定义类型转换器使用场景: jsp 代码: <!-- 特殊情况之:类型转换问题 --> <a href="account/deleteAccount?date=2018- ...
- SpringMVC自定义类型转换器
SpringMVC 自定义类型转换器 我们在使用SpringMVC时,常常需要把表单中的参数映射到我们对象的属性中,我们可以在默认的spring-servlet.xml加上如下的配置即可做到普通数据 ...
- springmvc——自定义类型转换器
一.什么是springmvc类型转换器? 在我们的ssm框架中,前端传递过来的参数都是字符串,在controller层接收参数的时候springmvc能够帮我们将大部分字符串类型的参数自动转换为我们指 ...
- springmvc中如何自定义类型转换器
package com.hope.utils;import org.springframework.core.convert.converter.Converter;import org.spring ...
- Struts2框架的自定义类型转换器
前言:对于java的基本数据类型及一些系统类(如Date类.集合类),Struts2提供了内置类型转换功能,但是也有一定的限制.所以就演示出自定义类型转换器 一.应用于局部类型转换器 eg.用户登录出 ...
- sruts2 自定义类型转换器
1.1.1 Struts2中自定义类型转换器:(了解) 类型转换的过程是双向的过程: JSP---->Action参数提交:String---Date. Action---->JSP ...
- Struts2之自定义类型转换器
Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用d ...
随机推荐
- <二> jQuery 语法
通过jQuery你可以选择/查询html元素,并对它们进行操作.jQuery 使用的语法是 XPath 与 CSS 选择器语法的组合. $(this).hide() 隐藏当前html元素 $(&quo ...
- DB天气app冲刺第四天
今天卡壳了 做得很慢.. 明天继续 换一种思路试一下吧..
- UIMenuController搭配UIPasteboard,执行拷贝-黏贴操作-b
一.基本概念 UIKit框架中,可以直接执行拷贝黏贴操作的有:UITextView.UITextField和UIWebView,其他控件需要实现相关方法. 关于UIPasteboard ·黏贴板是ap ...
- 如何在一整张背景图中,加隐形的a标签
很常见的一个需求,就上图每个国家图标都得加上各自指定的a标签 这时,我们就可以去加上隐藏且定位准确的几个a标签 这个时候,主要用到的就是text-indent和overflow 这两个属性的配合.te ...
- CSS的绝对定位和相对定位
css定位标签position包括两个值:relative(相对定位)和absolute(绝对定位),position样式一般都是和top.bottom.left.right一起使用来确定一个标签的位 ...
- BZOJ 3944 Sum 解题报告
我们考虑令: \[F_n = \sum_{d|n}\varphi(d)\] 那么,有: \[\sum_{i=1}^{n}F_i = \sum_{i=1}^{n}\sum_{d|i}\varphi(d) ...
- codeforces 390C Inna and Candy Boxes
这个题目看似不是很好下手,不过很容易发现每次询问的时候总是会问到第r个盒子是否有糖果: 这样的话就很好办事了: 维护两个数组: 一个sum数组:累加和: 一个in数组:如果i位是1的话,in[i]=i ...
- CoreData的简单使用(二)数据的增删改查,轻量级的版本迁移
上一篇中我们已经使用CoreData创建了一个SQLite数据库 CoreData的简单使用(一)数据库的创建 现在对数据库进行数据的CRUD(增删改查) 1.Data Model 的设置 创建一个D ...
- Android 透明Button
1.是制作9-patch的图片,这样能够匹配文字内容的长短. 2.是指定按钮样式背景,即定制drawable的xml文件,这样做的好处不用图片做背景,节省空间. 定制透明样式的按钮.直接看代码: dr ...
- C# ASP.NET FILEUPLOAD详解
显示一个文本框控件和一个浏览按钮,使用户可以选择要上载到服务器的文件. 命名空间: System.Web.UI.WebControls 程序集: System.Web(在 system.web.dll ...