数据类型转换
程序员文章站
2022-03-18 09:35:01
...
实际开发中用户通过浏览器输入的数据都是字符串(String或String[ ])
String/String[ ]-----填充模型(set方法)------------>POJO(plain old java object) pojo中有java的数据类型。
POJO---------------获取(get方法)------------->页面展示:String
类型转换情况
写数据(存):(增,删,改)都是String或String[ ]数组转换为其它数据。
读数据(取):(查)其他类型转化为String
Struts2提供的常用类型转换
- 基本类型转换
- 日期类型转换:默认按照本地日期格式转换(yyy-MM-dd)
- 字符串数组转换:默认用逗号+空格,连接成一个字符串
自定义类型转换器
实例:把日期改格式按照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;
}
}
配置类型转换器
全局类型配置
上一篇: 数据类型转换
下一篇: css全称是什么意思