Comment pouvez-vous lier à une date en bandes en utilisant un format spécifique? MM / jj / aaaa HH: mm: ss

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

  •  04-10-2019
  •  | 
  •  

Question

Comment lier une date dans en utilisant un format spécifique? "MM / jj / aaaa HH: mm: ss"

<s:text name="myDateTime" formatPattern="MM/dd/yyyy HH:mm:ss" />
Était-ce utile?

La solution

Stripes utilise Typeconverters pour convertir des paramètres de demande (chaînes) à des types de spécifiques. Le javadoc pour le convertisseur par défaut de type date se trouve ici:

net.sourceforge.stripes.validation .DateTypeConverter

Pour modifier les formats par défaut il est écrit:

  

Cet ensemble par défaut des formats peuvent être modifiés en fournissant un ensemble différent de chaînes de format dans le faisceau de ressources Stripes, ou par sous classage et en remplaçant getFormatStrings (). Dans tous les cas les modèles doivent être spécifiés à l'aide des espaces simples comme séparateurs au lieu de barres obliques, des tirets ou autres caractères.

  

Les clés utilisées dans le faisceau de ressources pour spécifier les chaînes de format et le modèle pré-processus sont:   stripes.dateTypeConverter.formatStrings et stripes.dateTypeConverter.preProcessPattern

Si cela ne le faites pas pour vous, vous pouvez toujours vous rouler propre êtes la TypeConverter . Ce convertisseur de type personnalisé peut alors être lié à un setter dans le ActionBean par:

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

Si vous voulez laisser le mappage être fait automatiquement vous soit nécessaire de remplacer le mappeur par défaut ou créer un autre type (sous). Par exemple, vous créez votre propre convertisseur de type non pour java.util.Date mais pour votre propre type personnalisé qui hérite de java.util.Date. Comme il est juste un sous-type sans comportement supplémentaire, le reste de l'application peut utiliser comme java.util.Date.

Date date;

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

Autres conseils

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

SimpleDateFormat sera en mesure de vous aider.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top