struts关于多个时间需要转换

前提:

类型转换需要实现defaultTypeconverter的public Object convertValue(Map<String, Object> context, Object value, Class toType) 方法

有全局类型转转换和局部类型转换,后者会覆盖前者

全局写法:在src下建xwork.conversion.properties文件

局部写法:在当前类下建ActionName.conversion.properties文件。

定义时间转换类DateConverter

public class DateConverter extends DefaultTypeConverter

说明:在这里我们以对时间转换为例,并且分别在全局和局部下传多个和一个时间进行对比。

一个局部:

                  jsp:创建开始日期:<input type="text" name="strartDate" value="11111111">格式yyyyMMdd<br>

                  Action类:private Date strartDate;

                  ActionName.conversion.properties:     strartDate=DateConverter全路径

                 DateConverter主要代码:

if(toType!=java.util.Date.class){
			return null;
		}
		if(value instanceof java.lang.String[]){
			String [] strDate = (String[])value;
			SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");//定义转换的格式
			Date date = null;
			try {
				date = format.parse(strDate[0]);
			} catch (ParseException e) {
				return null;
			}
			return date;
		}

一个全局:

                   jsp:创建开始日期:<input type="text" name="strartDate" value="11111111">格式yyyyMMdd<br>

                  Action类:private Date strartDate;

                  ActionName.conversion.properties:     java.util.Date=DateConverter全路径

                  DateConverter主要代码:

if(toType!=java.util.Date.class){
			return null;
		}
		if(value instanceof java.lang.String[]){
			String [] strDate = (String[])value;
			SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");//定义转换的格式
			Date date = null;
			try {
				date = format.parse(strDate[0]);
			} catch (ParseException e) {
				return null;
			}
			return date;
		}

多个局部:

                  jsp:创建开始日期:<input type="text" name="strartDate" value="11111111">格式yyyyMMdd<br>

                         创建结束日期:<input type="text" name="strartDate" value="22222222">格式yyyyMMdd<br>

                  Action类:private Date[] strartDate;

                  ActionName.conversion.properties:     strartDate=DateConverter全路径                

                  DateConverter主要代码:

if(toType !=java.util.Date.class[]){
			System.err.println("进来3");
			return null;
		}
		if(value instanceof String[]){
			System.err.println("进来4");
			Date[] Dates = new Date [2];
			String[] DateArray = (String[])value;
			SimpleDateFormat format = new SimpleDateFormat("yyyMMdd");
			System.out.println(DateArray.length+"长度");
			for(int i = 0;i<DateArray.length;i++){
				try {
					Dates[i] = format.parse(DateArray[i]);
					System.out.println("************"+Dates[i]);
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					return null;
				}
			}
			return Dates;
		}

多个全局:

                  jsp:创建开始日期:<input type="text" name="strartDate" value="11111111">格式yyyyMMdd<br>

                         创建结束日期:<input type="text" name="strartDate" value="22222222">格式yyyyMMdd<br>

                  Action类:private Date[] strartDate;

                  ActionName.conversion.properties:     java.util.Date=DateConverter全路径                
                  DateConverter主要代码:

if(toType !=java.util.Date.class){
			System.out.println("全局时他传的是一个Date类型不是Date类型数组");
			return null;
		}
		if(value instanceof java.lang.String){
			String DateStr = (String)value;
			SimpleDateFormat format = new SimpleDateFormat("yyyMMdd");
			Date dates = null;
			try {
				dates = format.parse(DateStr);
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return dates;
		}else {
			System.out.println("全局时传的是一个字符串,不是字符串数组");
		}

总结:

传一个不管全局还是局部toType不是数组   value是数组

传多个时全局:toType不是数组,分多次传每传一个,value也不是娄数组

传多个时局部:totype是数组一次传,value是数组

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值