数据类型转换

实际开发中用户通过浏览器输入的数据都是字符串(String或String[ ])

String/String[ ]-----填充模型(set方法)------------>POJO(plain old java object) pojo中有java的数据类型。

POJO---------------获取(get方法)------------->页面展示:String

 

类型转换情况

写数据(存):(增,删,改)都是String或String[ ]数组转换为其它数据。

读数据(取):(查)其他类型转化为String

 

 

Struts2提供的常用类型转换

  1. 基本类型转换
  2. 日期类型转换:默认按照本地日期格式转换(yyy-MM-dd)
  3. 字符串数组转换:默认用逗号+空格,连接成一个字符串

 

自定义类型转换器

实例:把日期改格式按照MM/dd/yyy格式转换

 

类型转换器结构

 

package com.itlhh.web.convertor;

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;
/**
 * 需求:
 *   把表单中的MM/dd/yyyy格式的数据转成日期类型
 *   表数据库中的本地日期格式:转成MM/dd/yyy形式输出
 * 
 * 自定义子类转换器:
 * 第一步:编写一个类,继承自StrutsTypeConvertor,实现convertorFromString,convertToString抽象方法
 */

public class MyTypeConvertor extends StrutsTypeConverter {

	
	//定义一个类型转换器
	private DateFormat format = new SimpleDateFormat("MM/dd/yyyy");
	
/**
 * 
 * 把字符串中的数据转成日期类型
 * 
 * 方法参数详解:
 * Map context:时OGNL的上下文对象,我们暂时不知道,所以暂时不用
 * String[] values:要转换的数据
 * Class toClass:目标类型
 */
	
	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		/**
		 * 
		 * 把字符串中的数据转成日期类型
		 * 
		 * 方法参数详解:
		 * Map context:时OGNL的上下文对象,我们暂时不知道,所以暂时不用
		 * String[] values:要转换的数据
		 * Class toClass:目标类型
		 */
		
		
		// 1.先看看有没有数据
		if(values == null || values.length == 0){
			return null;
		}
		//2.有 取出数组中的一个元素
		String date = values[0];
		//3.判断目标类型的字节码是不是日期类型
		if(toClass == java.util.Date.class){
			try {
				//4.是 使用DateFormat进行转换,并且返回转换后的结果
				return format.parse(date);		
			} catch (ParseException e) {
			e.printStackTrace();
			return null;
			}
		}
		
		return null;
	}

	
	
	/**
	 * 把日期类型的数据转换成字符串
	 * Map context:时OGNL的上下文对象,我们暂时不知道,所以暂时不用
	 * object o:要转换的数据
	 */
	@Override
	public String convertToString(Map context, Object o) {
		
		//1.判断object是不是日期类型
		if(o instanceof Date){
			Date date = (Date)o;
			//2.是日期类型,使用转换器转换成指定格式的字符串,并返回结果类型
			return format.format(date);
		}
		
		
		return null;
	}

}

 

配置类型转换器

全局类型配置

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值