struts2日期类型转换,继承StrutsTypeConverter


1.date.jsp页面

		<s:form action="login" method="post">
			<s:textfield label="姓名" name="users.username"></s:textfield>
			<s:textfield label="密码" name="users.password"></s:textfield>
			<s:textfield label="生日" name="users.birthday"></s:textfield>
			<s:submit></s:submit>
		</s:form>

2.showdate.jsp页面

自定义转换类型:<s:property value="users.birthday" /><br/>


3.Users实体类

public class Users {
	private String username;
	private String password;
	private Date birthday;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
}

4.action类

public class UsersAction extends ActionSupport{
	private Users users;

	public Users getUsers() {
		return users;
	}

	public void setUsers(Users users) {
		this.users = users;
	}

	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		System.out.println("姓名:"+users.getUsername());
		System.out.println("生日:"+users.getBirthday());
		return SUCCESS;
	}
}

5.继承StrutsTypeConverter的类

public class DateConverter extends StrutsTypeConverter {
	//支持转换的多种日期格式,可增加时间格式
	private final DateFormat[] df = {
		new SimpleDateFormat("yyyy年MM月dd日"),
		new SimpleDateFormat("yyyy.MM.dd"),
		new SimpleDateFormat("yyyy-MM-dd"),
		new SimpleDateFormat("MM/dd/yyyy"),
		new SimpleDateFormat("yyyy/MM/dd")
	}; 
	
	/**
	 * 将指定日期的字符串类型转化成日期类型
	 * */
	@Override
	public Object convertFromString(Map context, String[] values, Class toType) {
		String dateStr = values[0];
		for(int i=0;i<df.length;i++) {
			//遍历,进行转换
			try {
				return df[i].parse(dateStr);
			} catch (ParseException e) {
				continue;
			}
		}
		//如果遍历后没有转换成功则抛出异常
		throw new TypeConversionException();
	}

	/**
	 * 将日期转换为指定的字符串格式
	 * */
	@Override
	public String convertToString(Map context, Object object) {
		// TODO Auto-generated method stub
		Date date = (Date) object;
		//输出格式为yyyy-MM-dd
		return new SimpleDateFormat("MM/dd/yyyy").format(date);
	}
}

6.在src目录下新建一个xwork-conversion.propertions文件

java.util.Date=com.jmx.conversion.DateConverter

7.配置struts.xml

<action name="login" class="com.jmx.action.UsersAction">
	<result name="success">/showdate.jsp</result>
	<result name="input">/date.jsp</result>
</action>


最后发布访问项目就行了。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值