簡體   English   中英

如何在struts2 textfield標記中將日歷對象轉換為日期

[英]How to convert a calendar object to date in struts2 textfield tag

我正在編輯用戶個人資料,我需要一種方法來編輯用戶的出生日期。 在我的動作類中,dateOfBirth是一個Calendar對象。 現在如何在出生日期文本字段中填充日期。

<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]

而不是使用s:textfield標記嘗試使用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>

這是因為struts2有一組開箱即用的類型轉換器,struts2只支持日期轉換,它使用與當前請求關聯的Locale的SHORT格式。

您可以創建自定義類型轉換器,並可以告訴struts2將該類型轉換器用於Calendar對象。 創建自定義類型轉換器非常簡單直接。可以使用S2為此提供的StrutsTypeConverter

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM