自定义类型转换器converter

Posted Angelinas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义类型转换器converter相关的知识,希望对你有一定的参考价值。

作用:目前将日期转换成string,将string转换成我想要的类型   0509课件里讲

一、数据类型转换
在web应用程序中,数据存在两个方向上的转换:
1.当提交表单时
  表单数据以字符串的形式提交给服务器,在服务器端转换成不同的Java数据类型

2.当需要在页面显示数据时
  将不同的Java数据类型转换为对应的字符串格式显示输出

二、Struts2内置的类型转换
Struts2内置了常用类型的自动转换功能,支持常见数据类型与字符串之间的转换

三、自定义类型转换
1.编写自定义类型转换器,继承StrutsTyepConverter类
  重写convertFromString()和convertToString()方法

2.在src下创建xwork-conversion.properties
  配置类型转换器使用规则   如下写:            

java.util.Date=cn.bdqn.regist.converter.DateConverter

package cn.bdqn.regist.converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

import com.opensymphony.xwork2.conversion.TypeConversionException;

public class DateConverter extends StrutsTypeConverter{
	
	private SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

	//实现从字符串向目标Java对象进行转换
	@Override
	public Object convertFromString(Map ctx, String[] params, Class clazz) {
		Date date=null;		
		try {
			date=sdf.parse(params[0]);
		} catch (ParseException e) {
			//抛出TypeConversionException,向Struts2报告类型转换错误
			throw new TypeConversionException(e);
		}		
		return date;
	}
	
	
	//实现从Java对象向字符串转换
	@Override
	public String convertToString(Map ctx, Object object) {
		Date date=(Date)object;		
		return sdf.format(date);
	}

}

 

以上是关于自定义类型转换器converter的主要内容,如果未能解决你的问题,请参考以下文章

SpringMVC 获得请求数据 -- 自定义类型转换器(Date)

Spring MVC自定义类型转换器Converter参数解析器HandlerMethodArgumentResolver

spring jpa之实体属性类型转换器AttributeConverter,自定义Converter,通用Converter

在代码片段中包含类型转换

SpringBoot2---自定义类型转换器

SpringMVC入门终结篇