Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JSP/Struts Problem mit Datum in Textbox

0 views
Skip to first unread message

Hannes Mattsen

unread,
Mar 15, 2006, 2:49:08 PM3/15/06
to
Hallo,

ich habe eine Textbox in einer JSP-Seite in der ich ein Datum anzeigen
möchte. Das Datum befindet sich in Bean Klasse die verkürzt so
aussieht.


public class MyBean {

public MyBean() { }

private Date myDate = null;

public Date getMyDate() {
return myDate;
}

public void setMyDate(Date myDate) {
this.myDate = myDate;
}
}


Diese Bean wird nun in einer Struts-Form-Klasse genutzt:

public class MyForm extends FWValidatorForm {
private MyBean myBean;

public MyBean getMyBean() {
return myBean;
}

public void setMyBean(MyBean myBean) {
myBean = myBean;
}
}


Beim Aufruf der Seite wird das Datum auch korrekt angezeigt, aber wenn
ich Änderungen speichern möchte, bekomme ich eine Exception. Und
zwar:


[Servlet Error]-[BeanUtils.populate]:
java.lang.IllegalArgumentException: Cannot invoke
com.mypackage.MyBean.setMyDate - null
at java.lang.Throwable.<init>(Throwable.java:59)
at java.lang.Throwable.<init>(Throwable.java:73)
at
org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
at
org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
at
org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
at
org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
at
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
at
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
at
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:205)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

...

Ich vermute, es hängt mit dem Datumsformat zusammen. Wie muss ich muss
ich den Code abändern bzw. wie kann ich die Konvertierung vornehmen?


Gruss

Hannes

P.S.: Bin noch absoluter Neuling in JSP/Struts...

Michael Holtermann

unread,
Mar 16, 2006, 2:50:09 PM3/16/06
to
Hannes Mattsen wrote:

> Beim Aufruf der Seite wird das Datum auch korrekt angezeigt, aber wenn
> ich Änderungen speichern möchte, bekomme ich eine Exception. Und
> zwar:

Wie sieht die das JSP-Fragment dazu aus?

Könnte da sowas wie myBean.myDate.date drinstehen? Oder MyBean in der
ActionForm#reset auf null gesetzt werden?

Generell kann man empfehlen, von der JSP nur Strings in die ActionForm zu
schreiben, und das später zu konvertieren. Auf diese Weise bekommt man
zumindest keine RuntimeExceptions, wenn irgendwelcher Unsinn vom Client
kommt. Und man kann vernünftig mit validate() prüfen.

Grüße, Michael.

--
Hallo Cremeschnittchen-Esser!

0 new messages