2012-07-28 129 views
1

我编辑的用户配置文件,我需要一种方法来编辑出生的用户的日期。在我的动作类中,dateOfBirth是一个Calendar对象。现在,如何在出生日期文本字段中填充日期。如何将日历对象转换为日期在Struts2文本字段标签

<s:textfield id="txtDob" name="dateOfBirth" /> 


public class Person { 

    private Calendar dateOfBirth; 
    public Calendar getDateOfBirth() {  
     return dateOfBirth; 
    } 
    public void setDateOfBirth(Calendar dateOfBirth) {  
     this.dateOfBirth = dateOfBirth; 
    } 
} 

当我运行JSP,这是我得到的文本框里面

java.util.GregorianCalendar[time=366229800000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=1981,MONTH=7,WEEK_OF_YEAR=33,WEEK_OF_MONTH=3,DAY_OF_MONTH=10,DAY_OF_YEAR=222,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=19800000,DST_OFFSET=0] 
+0

我没有。我一直在寻找一些解决方案,但找不到任何解决方案。 – Hasif 2012-07-28 10:21:35

+0

我已经试过这dateOfBirth.time,得到了日期MM/DD/YY格式我怎样才能得到它的MM/dd/yyyy格式 – Hasif 2012-07-28 10:41:40

回答

1

这是因为struts2中有一组型转换器的开箱和struts2的只支持日期转换,它使用与当前请求关联的区域设置的SHORT格式。

您可以创建自定义类型转换器,可以告诉struts2的使用日历对象类型转换器。 创建一个自定义类型转换器是由S2为此目的

public class MyConverter extends StrutsTypeConverter { 
    public Object convertFromString(Map context, String[] values, Class toClass) { 
     ..... 
    } 

    public String convertToString(Map context, Object o) { 
     ..... 
    } 
} 
2

而不是使用提供的S相当简单和直接forward.make使用StrutsTypeConverter类:文本字段标签尝试使用dojo ajax sx:datetimepicker标签。在使用dojo标签之前添加相应的jar。

<%@ page contentType="text/html; charset=UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%> 
<html> 
<head> 
<title>Example/title> 
<s:head /> 
<sx:head /> 
</head> 
<body> 
<sx:datetimepicker name="dateOfBirth" label="Date Of Birth" 
    displayFormat="MM/dd/yyyy" /> 
</body> 
</html> 
+1

我绝不会提出一些其中的一个depricated – 2012-07-28 13:51:59

+0

标签其实我使用jQuery日期选择器,不一个在Struts-jquery插件中,但实际上是jQuery。有没有办法做到这一点或与插件。 – Hasif 2012-07-29 00:57:44