stratus2中的数据类型转换

struts2中的类型转换器是copy ONGL的类型转换器。

从页面获取的数据都是String 或者String[]类型的,所以,转换器就是把string,string[]类型转换成pojo中的数据类型,或者把pojo中的数据类型转换成string或者string[]类型

struts2的类型转换的结构如下:



所以,如果我们想自己编写其类型转换器就只需继承strutstypeconverter

主要有两个方法,一个是字符串转换为其它类型,另一个是其它类型转换为字符串

package com.yu.web.converter;

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

import org.apache.struts2.util.StrutsTypeConverter;

public class MyTypeConverter extends StrutsTypeConverter {
     
	DateFormat df= new SimpleDateFormat("MM/dd/yyyy");
	//字符串数据转换成所需类型
	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		// TODO Auto-generated method stub
		//首先,判断数据是否为空
		if(values==null||values.length==0){
			return null;
		}
		//取出字符串
		String str=values[0];
		if(toClass==java.util.Date.class){
			try {
				return df.parse(str);
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return null;
			}
		}
		return null;
	}
    
	//其它类型转换成字符串
	/**
	 * context:存放动作访问中的所有数据
	 * o:要转换的对象
	 */
	@Override
	public String convertToString(Map context, Object o) {
		// TODO Auto-generated method stub
		if(o instanceof Date){
			Date date= (Date)o;
			return df.format(date);
		}
		return null;
	}

}

编写了类型转换器,怎么使用它了,要使用类型转换器,就得注册该转换器

第一种:局部类型转换器,按照属性来转换,在要转换属性的javabean包目录下,创建一个.properties文件,文件名称为:javabean-conversion.properties文件

文件中写属性名=类型转换器类的全名称

birthday=com.yu.web.converter.MyTypeConverter
第二种:在全局类型转换器

在classpath(一般是src)下,建立一个名称(不能更改)为xwork-conversion.properties的属性文件

文件中编写 要转换的类型=类型转换器类的全名

java.util.Date=com.yu.web.converter.MyTypeConverter


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值