2012-07-28 127 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