Sure:

BEAN Code:
(Please note: the createDate and lastChangeDate are auto generated and work, 
the Problem is the "buchungsDatum" and "belegDatum" fields)



@SuppressWarnings("unchecked")
public class BuchungsKopf extends MetaData {
        public static final String VAL_GROUP_BUCHUNG_DATUM = "BUCHUNG_DATUM";
        
        public static final String PROP_BUCHUNGS_KREIS = "buchungsKreis";

        public static final String PROP_BUCHUNGS_DATUM = "buchungsDatum";
        private int id = -1;
        private int konfigBukokoid;
        private String creatorName = "anon";
        private Timestamp createDate = new 
Timestamp(System.currentTimeMillis());
        private Timestamp lastCangeDate = new 
Timestamp(System.currentTimeMillis());
        private int buchungsStatus;
        private String belegArt;
        private int buchungsPeriode;
        private int buchungsKreis;
        private int geschaeftsJahr;
        private Date buchungsDatum;
        private Date belegDatum;
        private String waehrung;
        private String text;
        private String referenz;
        private boolean steuerRechnen;
        private String name;
        private String strasse;
        private String portfach;
        private String portfachPlz;
        private String ort;
        private String plz;
        private String land;
        private String blz;
        private String bankLand;
        private String bankKontoNr;
        
        public void activateMetaData() {
                addConstraint(new 
ConstrainedProperty("id").notNull(true).identifier(true).editable(false));
                addConstraint(new 
ConstrainedProperty("konfigBukokoid").notNull(true).manyToOne(BuchungsKopfKonfig.class,
 "id", null, CreateTable.CASCADE).editable(false));
                addConstraint(new 
ConstrainedProperty("creatorName").maxLength(50).listed(true).editable(false));
                addConstraint(new 
ConstrainedProperty("createDate").editable(false));
                addConstraint(new 
ConstrainedProperty("lastCangeDate").editable(false));
                
                addConstraint(new ConstrainedProperty("belegArt").maxLength(2));
                addConstraint(new 
ConstrainedProperty("buchungsPeriode").inList(Vwk2KonfigIF.BUCHUNGS_PERIODEN));
                addConstraint(new 
ConstrainedProperty(PROP_BUCHUNGS_KREIS).rangeBegin(1));
                addConstraint(new ConstrainedProperty("waehrung").maxLength(5));
                addConstraint(new ConstrainedProperty("text").maxLength(25));
                addConstraint(new 
ConstrainedProperty("referenz").maxLength(16));
                
                addConstraint(new ConstrainedProperty("name").maxLength(35));
                addConstraint(new ConstrainedProperty("strasse").maxLength(35));
                addConstraint(new 
ConstrainedProperty("portfach").maxLength(10));
                addConstraint(new 
ConstrainedProperty("portfachPlz").maxLength(10));
                addConstraint(new ConstrainedProperty("ort").maxLength(35));
                addConstraint(new ConstrainedProperty("plz").maxLength(10));
                addConstraint(new ConstrainedProperty("land").maxLength(3));
                addConstraint(new ConstrainedProperty("blz").maxLength(15));
                addConstraint(new ConstrainedProperty("bankLand").maxLength(3));
                addConstraint(new 
ConstrainedProperty("bankKontoNr").maxLength(18));
                
                addConstraint(new 
ConstrainedProperty("belegDatum").format(Vwk2KonfigIF.INPUT_DATE_FORMAT_DOTS));
                addConstraint(new 
ConstrainedProperty(PROP_BUCHUNGS_DATUM).format(Vwk2KonfigIF.INPUT_DATE_FORMAT_DOTS));

                
        }       
}
 

The Date Format:

public class Vwk2KonfigIF {
        ....
        public static final Format INPUT_DATE_FORMAT_DOTS =     new 
SimpleDateFormat("dd.MM.yyyy");
        ....
}


Sourcecode:: Element:BuchungsKopfEdit: 
The form post gets handled by "doAlterBuKo()", which runs into processElement() 
because the bean is not validated


public class BuchungsKopfEdit extends AbstractVwk2Element {


        private Template htmlTemplate = null;
        private ContentQueryManager<BuchungsKopf> manager = null;
        private BuchungsKopf currentBuchungsKopf = null;

        public void initialize() {
        Datasource datasource = getPropertyTyped(Vwk2KonfigIF.DATASOURCE_NAME, 
Datasource.class);
        manager = new ContentQueryManager<BuchungsKopf>(datasource, 
BuchungsKopf.class);
        int bukokoId = getInputInt(Vwk2KonfigIF.PARAM_BUKOKO_ID);
        System.out.println("Booking Konfig id: " + bukokoId);
        BuchungsKopf curBuKoKo = new BuchungsKopf();
        curBuKoKo.setKonfigBukokoid(bukokoId);
        curBuKoKo.setCreatorName(getUserName());
        currentBuchungsKopf = curBuKoKo;
                htmlTemplate  = getHtmlTemplate("buchen.buchungskopf");
                Vwk2SelectBoxHelper.addBuchungBuchungsKreisSelect(this, 
htmlTemplate, currentBuchungsKopf, BuchungsKopf.PROP_BUCHUNGS_KREIS);

        }






        @Override
        public void processElement() throws EngineException {
        int bukokoId = getInputInt(Vwk2KonfigIF.PARAM_BUKOKO_ID);
        setOutput(Vwk2KonfigIF.PARAM_BUKOKO_ID, bukokoId);
        String statusMessage = getInput(Vwk2KonfigIF.PARAM_STATUS_MESSAGE);
        if (null != statusMessage) {
                htmlTemplate.setValue(Vwk2KonfigIF.PARAM_STATUS_MESSAGE, 
statusMessage);
                clearOutput(Vwk2KonfigIF.PARAM_STATUS_MESSAGE);
        }
                System.out.println("current Buchuingsdate: " + 
currentBuchungsKopf.getBuchungsDatum());
                generateForm(htmlTemplate, currentBuchungsKopf);
                print(htmlTemplate);
        }

        public void doAlterBuKo(){
                fillSubmissionBean(currentBuchungsKopf);
                if ( ((Validated) currentBuchungsKopf).validate() ) {
                        currentBuchungsKopf.setLastCangeDate(new 
Timestamp(System.currentTimeMillis()));
                        if (currentBuchungsKopf.getId() > 0) {
                                setOutput(Vwk2KonfigIF.PARAM_STATUS_MESSAGE, 
"Buchungs Kopf wurde erfolgreich geändert");
                        } else {
                                setOutput(Vwk2KonfigIF.PARAM_STATUS_MESSAGE, 
"Buchungs Kopf wurde erfolgreich hinzugefügt");
                        }
                        manager.save(currentBuchungsKopf);
                        exit("list");
                } else {
                        System.out.println("Fehler in der Eingabe..");
                        ValidationBuilderXhtml builder = new 
ValidationBuilderXhtml();
                        builder.generateErrorMarkings(htmlTemplate, 
((Validated) currentBuchungsKopf).getValidationErrors(), null, null);
                        ValidationBuilderXhtml marksBuilder = new 
ValidationBuilderXhtml();
                        marksBuilder.generateErrorMarkings(htmlTemplate, 
((Validated) currentBuchungsKopf).getValidationErrors(), null, null);
                        processElement();
                }
        }
        
}




Stack trace:

SCHWERWIEGEND: Error on host localhost:8080//vwk2
com.uwyn.rife.engine.exceptions.EngineException: 
java.lang.IllegalArgumentException: Cannot format given Object as a Date
        at 
com.uwyn.rife.engine.ElementContext.processContext(ElementContext.java:464)
        at com.uwyn.rife.engine.RequestState.service(RequestState.java:350)
        at com.uwyn.rife.engine.Gate.handleRequest(Gate.java:421)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.uwyn.rife.servlet.RifeFilter.doFilter(RifeFilter.java:142)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
        at 
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
        at org.mortbay.http.HttpServer.service(HttpServer.java:909)
        at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
        at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
        at 
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
        at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Caused by: java.lang.IllegalArgumentException: Cannot format given Object as a 
Date
        at java.text.DateFormat.format(DateFormat.java:279)
        at java.text.Format.format(Format.java:133)
        at com.uwyn.rife.tools.BeanUtils.formatPropertyValue(BeanUtils.java:485)
        at com.uwyn.rife.tools.ArrayUtils.createStringArray(ArrayUtils.java:115)
        at 
com.uwyn.rife.site.FormBuilderXhtml.generateForm(FormBuilderXhtml.java:155)
        at 
com.uwyn.rife.site.FormBuilderXhtml.generateForm(FormBuilderXhtml.java:65)
        at 
com.uwyn.rife.engine.ElementContext.generateForm(ElementContext.java:3100)
        at 
com.uwyn.rife.engine.ElementSupport.generateForm(ElementSupport.java:4827)
        at 
com.uwyn.rife.engine.ElementSupport.generateForm(ElementSupport.java:4795)
        at 
de.metro.kws.vwk2.elements.user.buchen.BuchungsKopfEdit.processElement(BuchungsKopfEdit.java:53)
        at 
de.metro.kws.vwk2.elements.user.buchen.BuchungsKopfEdit.doAlterBuKo(BuchungsKopfEdit.java:74)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
com.uwyn.rife.engine.ElementContext.processContext(ElementContext.java:450)
        ... 20 more








I hope it helps...


> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] Im Auftrag von Geert Bevin
> Gesendet: Dienstag, 22. August 2006 15:09
> An: RIFE users list : questions,bug reports and suggestions.
> Betreff: Re: [Rife-users] Dateformat and Generate Form
> 
> Hi Gill,
> 
> can you please include your full stack trace and the source code of  
> that bean?
> 
> Thanks,
> 
> Geert
> 
> On 22 Aug 2006, at 14:58, Gill, Huibert wrote:
> 
> > Hello,
> >
> > I got a problem using Validation with Dateformat and the  
> > generateForm() in my Element.
> >
> > I have a simple Bean with som text, number and a date fields.
> >
> > If the submitted Bean is not Valid, I will generate the 
> errors, and  
> > the Markers in the Template.
> > Then a generataForm() is called to regenerate the form.
> >
> > This works pretty well for all Fields, except for Datefields.
> > If I submit a wrongly formated Date (or a bogus word) the method  
> > call for generateForm() throws an Exception "Cannot format given  
> > Object as a Date"
> >
> > Funny thing is that if a submit a word in a number field, 
> the error  
> > markings are generated correctly, and the generateForm() does not  
> > throw an exception.
> >
> >
> > My problem here is, that if I submit a wrong date, all other form  
> > info (hidden fields, select boxes) are not generated either.
> >
> > Is there a way to set the "wrong" Date to a NULL value or 
> something  
> > similar?
> >
> >
> > Mit freundlichen Grüßen / With kind regards
> >
> > Huibert Gill
> > _______________________________________________
> > Rife-users mailing list
> > [email protected]
> > http://lists.uwyn.com/mailman/listinfo/rife-users
> >
> 
> --
> Geert Bevin
> Uwyn "Use what you need" - http://uwyn.com
> RIFE Java application framework - http://rifers.org
> Music and words - http://gbevin.com
> 
> 
> _______________________________________________
> Rife-users mailing list
> [email protected]
> http://lists.uwyn.com/mailman/listinfo/rife-users
> 
_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users

Reply via email to