Java BeanUtilsBean : Convert Date String
Ich versuche zu laufen BeanUtilsBean.getInstance().populate(...)
aber auf das HTML-Formular gibt es ein Feld, trägt String-Darstellung von Datum der Geburt. Das Objekt bean hat das Feld type java.util.Date
Lesen Sie einige Suche von Ggl, die zum erstellen von benutzerdefinierten Konverter aber nicht ganz verstanden, wie das zu tun.
Wer kann helfen?
Mein code:
public static void main(String[] args) {
Map<String, String[]> formData = new HashMap<String, String[]>();
formData.put("email", new String[]{"[email protected]"});
formData.put("firstName", new String[]{"danny"});
formData.put("lastName", new String[]{"miller"});
formData.put("dob", new String[]{"15-Apr-1980"});
formData.put("userName", new String[]{"dannymiller"});
try {
Consumer consumer = new Consumer();
DateTimeConverter dtConverter = new DateConverter();
dtConverter.setPattern("dd/MMM/yyyy");
ConvertUtilsBean convertUtilsBean = new ConvertUtilsBean();
convertUtilsBean.deregister(Date.class);
convertUtilsBean.register(dtConverter, Date.class);
BeanUtilsBean beanUtilsBean = new BeanUtilsBean(convertUtilsBean, new PropertyUtilsBean());
beanUtilsBean.populate(consumer, formData);
if (consumer != null) {
System.out.println(consumer.getEmail());
System.out.println(consumer.getFirstName());
System.out.println(consumer.getLastName());
System.out.println(consumer.getDob());
System.out.println(consumer.getUserName());
}
} catch (Exception e) {
e.printStackTrace();
}
Den Fehler zurück:
Apr 22, 2011 11:14:45 Uhr
org.apache.Unterhaus.beanutils.Wandler.DateTimeConverter
aktuelle WARNUNG: DateConverter hat
keine Unterstützung für Standard-String 'Datum'
die Konvertierung. Apr 22, 2011 11:14:45 Uhr
org.apache.Unterhaus.beanutils.Wandler.DateTimeConverter
aktuelle WARNUNG: (N. B. Re-konfigurieren
Converter oder nutzen Sie alternative
Umsetzung) Exception in thread
"main"
org.apache.Unterhaus.beanutils.ConversionException:
DateConverter nicht unterstützt default
String zu Datum-Konvertierung. bei
org.apache.Unterhaus.beanutils.Wandler.DateTimeConverter.toDate(DateTimeConverter.java:468)
bei
org.apache.Unterhaus.beanutils.Wandler.DateTimeConverter.convertToType(DateTimeConverter.java:343)
bei
org.apache.Unterhaus.beanutils.Wandler.AbstractConverter.konvertieren(AbstractConverter.java:156)
bei
org.apache.Unterhaus.beanutils.Wandler.ConverterFacade.konvertieren(ConverterFacade.java:60)
bei
org.apache.Unterhaus.beanutils.ConvertUtilsBean.konvertieren(ConvertUtilsBean.java:470)
bei
org.apache.Unterhaus.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1008)
bei
org.apache.Unterhaus.beanutils.BeanUtilsBean.Auffüllen(BeanUtilsBean.java:830)
bei
com.ymatch.test.BeanTest.main(BeanTest.java:32)
InformationsquelleAutor d4v1dv00 | 2011-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benötigen Sie eine
SimpleDateFormat
durch die parse den gegebenen string nach einem bestimmten format. Für die, die Sie brauchen, um zu behandeln die Konvertierung manuell - name der Anfrage-parameter unterschiedlich und legen Sie es anschließend manuell.Aber beanutils hat eine Umwandlung Dienstprogramm, so können Sie es verwenden, anstelle (dieser code kann ausgeführt werden, einmal pro Anwendung):
siehe aktualisiert....
sehr lustig,
DateTimeConverter dtConverter = new DateTimeConverter();
ist nicht möglich, die instanziiert werden sollen.sorry, siehe Aktuelles. es ist
DateConverter
das ist die konkrete KlasseSorry mate, die ich aktualisiert hatte, wird der code wie oben, aber es immer noch der gleiche Fehler.
InformationsquelleAutor Bozho
Getan mit dieser Methode:
InformationsquelleAutor d4v1dv00