基于Converter解决Struts1无法处理日期类型的有关问题
基于Converter解决Struts1无法处理日期类型的问题转自http://www.suneca.com基于Struts做应用程序开发的时
基于Converter解决Struts1无法处理日期类型的问题
转自http://www.suneca.com
基于Struts做应用程序开发的时候,对日期数据的处理,这个是最常见的,由于Struts默认是不支持自动将网页POST的数据自动转化成Date型数据,所以,很多程序员就直接在ActionForm当中直接使用String,然后在Action当中再进行字符串跟日期数据的处理。
那假如在ActionForm当中是使用Date类型呢?会出现什么问题?能用什么样的解决办法?我们先看一下在ActionForm当中会出现的问题先。
首先,我们先创建一个新的Struts工程,创建一个新的ActionForm,取名叫UserForm,UserForm的实现代码如下:
程序代码 程序代码 程序代码
提交将会报以下的错误信息: 程序代码 程序代码 程序代码package zizz.struts;
import java.util.Date;
import org.apache.struts.action.ActionForm;
import org.apache.commons.beanutils.ConvertUtils;
/**
* UserForm对应着提交页面的网页表单信息
* @author chen yuzhe
*
*/
public class UserForm extends ActionForm{
????
????
static{
????????ConvertUtils.
register(
new DateConverter(), Date.
class);
????}
????/**
???? * serialVersionUID
???? */
????
private static final
long serialVersionUID = -742922986494711669L;
????
private int id;
????
????
private String name;
????
????
private int age;
????
????
private String loginId;
????
????
private Date birthday;
????
public int getAge() {
????????
return age;
????}
????
public void setAge(
int age) {
????????
this.age = age;
????}
????
public Date getBirthday() {
????????
return birthday;
????}
????
public void setBirthday(Date birthday) {
????????
this.birthday = birthday;
????}
????
public int getId() {
????????
return id;
????}
????
public void setId(
int id) {
????????
this.id = id;
????}
????
public String getLoginId() {
????????
return loginId;
????}
????
public void setLoginId(String loginId) {
????????
this.loginId = loginId;
????}
????
public String getName() {
????????
return name;
????}
????
public void setName(String name) {
????????
this.name = name;
????}
????
}