天天看点

Struts2——数据类型转换+自定义数据转换

数据类型转换+自定义数据转换

1. 自动类型转换?

.............

    2. 手动类型转换?

例如:将数据value = 【3,lb,123456,2】转换为 用户对象

3. 如何实现手动类型转换功能?[局部使用的转换器,全局的]

步骤:

1.定义转换器类;[继承默认转换器DefaultTypeConverter]

Struts2——数据类型转换+自定义数据转换

2.重写方法converterValue(); 如何实现转换?

在执行action方法之前,调用自定义转换器中的转换方法,将数组转换成自定类型;

3.返回目标函数值类型

package com.zgq.convertion;

import java.util.Map;

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
import com.zgq.model.User;

public class UserConversion extends DefaultTypeConverter{

	@Override
	public Object convertValue(Map<String, Object> context, Object value, Class toType) {
		
		//value = 3,lb,123456,2
				//将参数转换为 数组 开始解析 ,最后封装为对象
				String[] strArry = (String[])value;
				
				String[] usinfo = strArry[0].split(",");
				
				User userEnt = new User();
				//获取单个参数
				//for(int i=0; i<strArry.length;i++){}
				userEnt.setUid(Integer.parseInt(usinfo[0]));
				userEnt.setLoginName(usinfo[1]);	
				userEnt.setUserPwd(usinfo[2]);	
				userEnt.setUserPower(Integer.parseInt(usinfo[3]));	
				//时间类型转换
				//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");	
				/*try {
					ui.setUserBirthday(sdf.parse(usinfo[4]));
				} catch (ParseException e) {
					e.printStackTrace();
				}*/
				
				return userEnt;
		
		
	}

	
     
	
}
           

4.配置转换器 启动

Struts2——数据类型转换+自定义数据转换
Struts2——数据类型转换+自定义数据转换

注意:必须在action所在目录,创建配置文件;

  文件命名格式: Action类名-conversion.properties;

全局:放在src目录下

  统配:xwork-conversion.properties;

继续阅读