Wie binden Sie ein Datum in den Streifen ein bestimmtes Format verwenden? MM / tt / HH: mm: ss

StackOverflow https://stackoverflow.com/questions/3752200

  •  04-10-2019
  •  | 
  •  

Frage

Wie binden Sie ein Datum in Streifen ein bestimmtes Format verwenden? "MM / tt / HH: mm: ss"

<s:text name="myDateTime" formatPattern="MM/dd/yyyy HH:mm:ss" />
War es hilfreich?

Lösung

Streifen verwendet Typeconverter Anforderungsparameter (Strings) auf bestimmte Typen umzuwandeln. Die javadoc für den Standard-Datum Typ Konverter kann hier gefunden werden:

net.sourceforge.stripes.validation .DateTypeConverter

Um die Standardformate ändern heißt es:

Dieser Standardsatz von Formaten kann durch die Bereitstellung eines anderen Satz von Formatstrings in den Streifen Ressourcenbündel oder durch Unter classing und zwingende getFormatStrings () geändert werden. In allen Fällen Muster mit einzelnen Leerzeichen als Trennzeichen angegeben statt Schrägstriche, Bindestriche oder andere Zeichen werden sollte.

Und:

Die Schlüssel in dem Ressourcenpaket verwendet, um die Formatstrings und das Vorverfahren Muster angeben, sind: stripes.dateTypeConverter.formatStrings und stripes.dateTypeConverter.preProcessPattern

Wenn das nicht es für Sie tut, kann man immer rollen Sie sind eigene Typeconverter . Dieser Brauch Wandler kann dann gebunden an einen Setter in der ActionBean von:

@Validate(converter=YourCustomTypeConverter.class)
public void setDate(Date date) {
  this.date = date;
}

Wenn Sie automatisch, müssen Sie entweder lassen wollen wird die Zuordnung erfolgt den Standard-Mapper außer Kraft zu setzen oder eine andere (Unter-) Art zu erstellen. Zum Beispiel können Sie Ihre eigene Art Konverter nicht für java.util.Date schaffen, sondern für Ihre eigenen benutzerdefinierten Typ, erbt von java.util.Date. Da es nur einen Untertyp ohne zusätzliches Verhalten ist, kann der Rest der Anwendung als java.util.Date verwenden.

Date date;

// No @validate needed, maps to MyCustomDate
public void setDate(MyCustomDate date) {
  this.date = date;
}     

Andere Tipps

<fmt:formatDate timeZone="${timeZone}" value="${date}" pattern="MM/dd/yyyy hh:mm a"/>

Simple in der Lage, Ihnen helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top