Probably you misunderstood my statements or misunderstood
the capability of the common-beanutils package.

If someone designs a form bean with a non-string property,
say, the contactid as native int property. The common-beanutils
package would not be able to cache the conversion error and
then  re-display the user's original input, if that input is
a invalid integer, say 123A.

More troubles arise when the JSP page has a lot of fields, say,
20 fields, for example, if the contactid get a conversion error
at the very beginning, then the whole form bean would not be
populated appropriately. The user's inputs are wiped out.

It is a well known issue of the ActionForm at the moment.
And it should be addressed in the future Struts releases.

Please be specific and remain context relevant.

Jing


----- Original Message ----- 
From: "Mark Galbreath" <[EMAIL PROTECTED]>
To: "'Struts Users Mailing List'" <[EMAIL PROTECTED]>; "'Jing
Zhou'" <[EMAIL PROTECTED]>
Sent: Tuesday, August 19, 2003 3:24 PM
Subject: RE: exception in actionfrom class.


Your first statement is not true and this is a shameless marketing plug for
your project.

Mark

-----Original Message-----
From: Jing Zhou [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 19, 2003 2:06 PM
To: Struts Users Mailing List
Subject: Re: exception in actionfrom class.


The current Struts 1.1 allows you to design form beans (instances of
ActionForm)
using only String properties. This because the common-beanutils package is
not able to cache conversion exceptions and re-display original user's
inputs.

You are responsible to validate the string properties (using whatever
validation
methods) and then invoke the copyProperties() method in the common-beanutils
package to copy and/or convert the string properties to your domain objects,
for example, your ContactInfo objects.

If you really want to catch the conversion exceptions and display them to
screen, check the HyperFormBean class at http://www.netspread.com The hyper
form bean is also an extension of the ActionForm class. But it supports 12
standard types and one custom property interface. It can cache any
conversion exceptions and is able to display original user's inputs in case
of any errors.

The form bean model improves the Struts action form in the following ways:
1) Standard and custom property types are supported. It fits into
    the common-beanutils package smoothly.
2) Type conversions are performed only one time. (Struts may need one or
    more times to perform type conversions, one in the copyProperties()
method
    and another possible one in the validation methods)
3) Reduce the usage of reflection. Therefore it gives higher performance.
4) Tools can be designed for designers to compose such form bean model.
    Carrier has a form bean model composer tab pane where designers could
    compose whatever form bean model they like, including nested ones.
5) The reset method in the form bean model is view agnostic. You never need
    to re-write the reset method anymore, anywhere, even if you change
    your web forms.
6) The validate method in the form bean model is also view agnostic. You
could
    attach built-in or custom validation rules in addition to the required
and
    data type conversion rules. You do not need to re-write the validate
method
    even if you change your web forms in the form bean model.
7) The concept of the runtime property name is a very interesting one, I
believe.
    The runtime property path to a nested property of the hyper form bean
could
    be automatically adapted as needed.
8) The hyper form bean can be persisted and restored systematically. The
default
    persistence mechanism implemented in Carrier allows you to prototype web
    applications without writing custom codes. It includes CRUD operations
on
    nested form beans.

The algorithm that simultaneously achieve above 8 goals is called Wheels. It
is so simple just like a wheel - nothing less and nothing more. If it is
proved to be right, I wish it could be contributed back to Struts as a
contribution package with necessary adaptations for more general
requirements. After all, it is an algorithm built on the shoulders of the
Struts team :-) So we publish the full source codes of Wheels for public
viewers.

Jing
Netspread Carrier
http://www.netspread.com


----- Original Message ----- 
From: "deepaksawdekar" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, August 19, 2003 5:08 AM
Subject: exception in actionfrom class.


I am using the containment design patter for the ActionForm.
My action form will look like this.

public final class ContactForm extends ActionForm {
private ContactInfo contactInfo;

public int getContactid() {
        return contactInfo.getContactId();
    }

    public void setContactid(int ContactId) {
this.contactInfo.setContactId(ContactId);
    }

    public String getTitle() {
        return contactInfo.getContactPersInfo().getNameInfo().getTitle();
    }

    public void setTitle(String Title) {
this.contactInfo.getContactPersInfo().getNameInfo().setTitle(Title);
    }
.
.
.
.
.
}

the setter methods throughs some exception. Exceptions will be thrown if
there is some format validation error. I want to catch this exception and
would like to display them on the screen, how can i achive this.


Thanks and Regards
deepak

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to