struts2 之 类型转换

本文介绍如何在Struts2框架中实现自定义日期类型的转换器,解决特定日期格式的输入问题。通过继承`StrutsTypeConverter`并重写方法来完成从字符串到日期的转换,同时提供错误处理方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

struts2 支持 一些基本类型转换,对于不支持的我们可以 自己定义一些类型转换器

比如要实现如下功能:


要求生日(Date类型)的输入格式如上,Struts2支持 的格式为“2012-02-23”这种类型,所以我们要写自己的转换器

实现类可如下:

import java.text.SimpleDateFormat;
import java.util.*;

import org.apache.struts2.util.StrutsTypeConverter;

public class DateTypeConverter extends StrutsTypeConverter {//继承StrutsTypeConverter

	@Override
	public Object convertFromString(Map arg0, String[] value, Class toType) {//转换为Date类型
		SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
		String[] params = null;
		try {
			if (toType == Date.class) {
				params = (String[]) value;
				return sf.parse(params[0]);
			} 
		} catch (Exception e) {
		}
		return null;
	}

	@Override
	public String convertToString(Map arg0, Object arg1) {//转换为String类型
		return arg1.toString();
	}
}

定义为局部转换器:

在action类同级目录下,新建.properties类型文件,文件名:Action类名-conversion.propertites,并添加以属性名为键、转换器类名为值的键值对

birthday=cn.ljf.DateTypeConverter
定义为全局:

在src目录下新建.properties类型文件,文件名:xwork-conversion.propertites,并添加以java.util.Date为键、转换器类名为值的键值对

java.util.Date=cn.ljf.DateTypeConverter


类型转换错误处理:

下图是类型转换的错误处理流程:


当类型转换出现异常时,系统的conversionError拦截器就会处理该异常,处理结束后返回名为input的逻辑视图,并可通过<s:fielderror /> 在该视图中输出错误 信息,注意action应该继承ActionSupport。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值