码迷,mamicode.com
首页 > 其他好文 > 详细

struts2 之类型转化&日期

时间:2015-07-24 08:04:15      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:struts

Struts中的基本类型是可以通过struts的默认类型转化器转化的..日日类型默认的是1992-02-03这样的格式,如果我们填写1992年02月03日,name就会报错...因此我们需要进行类型转化...

1.局部类型转化器:

开发步骤:

(1)写一个类型转化器继承StrutsTypeConverter这个类.

(2)在要转化的类的同级目录下写一个和ActionName-conversion.properties的配置文件,如我这里要转化的是UserAction类中date类型...

技术分享

(3)在这个配置文件中写要转化的属性=类型转化器的全名.

user.date=cn.itcast.converter.MyConverter

2.全局类型 转化器

(1)写一个类型转化器继承StrutsTypeConverter这个类

(2)在src下写一个名称为xwork-conversion.properties的配置文件

(3)内容是:

java.util.Date=cn.itcast.converter.MyConverter

注册表单:(struts的配置文件略)

<body>
    <form action="${pageContext.request.contextPath}/user/register" method="post">
    	username:<input type="text" name="user.username"/><br>
    	age:<input type="text" name="user.age"/><br>
    	date:<input type="text" name="user.date"/><br>
    	<input type="submit" value="提交">
    </form>
  </body>

技术分享

自定义类型转化器:

package cn.itcast.converter;

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;

public class MyConverter extends StrutsTypeConverter{

	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		DateFormat[] df={new SimpleDateFormat("yyyy-MM-dd"),new SimpleDateFormat("yyyy年MM月dd日"),new SimpleDateFormat("yyyyMMdd")};
		//判断是不是为null
		if(values==null||values.length==0){
			return null;
		}
		//判断是不是Date类型
		if(Date.class!=toClass){
			return null;
		}
			
			for(int i=0;i<df.length;i++){
				 Date date;
				try {
					date = df[i].parse(values[0]);
				} catch (ParseException e) {
					continue;
				}
				 return date;
			}
			return null;
		
	}

	@Override
	public String convertToString(Map context, Object o) {
		return null;
	}

}
UserAction:要转化是这个类中的user.date属性

package cn.itcast.type;

import cn.itcast.domain.User;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction  extends ActionSupport{
	private User user;
	
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public String register(){
		System.out.println(user.getUsername()+"=="+user.getAge()+"=="+user.getDate());
		return "register";
	}
}
如果是:局部配置文件:

user.date=cn.itcast.converter.MyConverter
如果是:全局配置文件

java.util.Date=cn.itcast.converter.MyConverter

当我们在表单中填写如下内容:

技术分享

控制台打印:

李卫康==22==Sat Sep 12 00:00:00 CST 1992

版权声明:本文为博主原创文章,未经博主允许不得转载。

struts2 之类型转化&日期

标签:struts

原文地址:http://blog.csdn.net/u014010769/article/details/47035043

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!