If you don't have an action property named "fieldname" then not only will 
validation not work but neither will normal property copying (from form to 
action).

If, for example, you have a MyForm named "form", and has an appropriate 
getter/setter, its form element would look like this:

<s:textfield name="form.fieldName"/>

If you're handling validation programmatically (via the Validateable interface 
and the action's validate() method) you'd then validate against the MyForm 
instance, for example:

public void validate() {
    if (StringUtils.isBlank(this.form.getFieldName())) {
        ...
    }
    ...
}

It sort of seems like you're implementing a bit of ModelDriven, but 
manually--not a problem, but seems a bit duplicative.

Dave

--- On Mon, 7/14/08, Nicole Luneburg wrote:

> From: Nicole Luneburg <[EMAIL PROTECTED]>
> Subject: RE: struts2 validation
> To: "Struts Users Mailing List" <user@struts.apache.org>
> Date: Monday, July 14, 2008, 3:16 AM
> ps. My post added some "3D" text that isn't
> supposed to be there ...
> 
> Thanks Jeromy.
> 
> Yes I do have a <s:head> attribute, maybe not
> *exactly* but I have:
> <s:head theme="ajax" />
> 
> Apologies for the confusion.
> What I meant in my pevious post was that I had tried a few
> ways to do this validation task.
> In my initial post I had described one of these attempts
> which I think should have worked.
> 
> What I am getting regardless of what sort of validation I
> try to implement is this error:
> 
> java.lang.StringIndexOutOfBoundsException: String index out
> of range: -7
> 
> You mentioned the getters and setters for the fieldnames
> ... this only works though if the fields are stored in the
> action right?
> coz the fields I have aren't stored in the action, they
> are stored in a Form class.
> 
> Ie my action looks something like:
> 
> public String execute() {
>         MyForm myForm = (MyForm)super.form;
>         String myField = myForm.getFieldName();
> }
> 
> Markus: Thanks for your reply too, I am trying it right
> now. Just want this to work grrr
> 
> 
> -----Original Message-----
> From: Jeromy Evans
> [mailto:[EMAIL PROTECTED]
> Sent: Monday, 14 July 2008 4:25 PM
> To: Struts Users Mailing List
> Subject: Re: struts2 validation
> 
> Nicole Luneburg wrote:
> >
> >
> >
> > <s:form action=3D"myaction"
> method=3D"post" validate=3D"true">
> >
> The validate attribute here is used to enable client-side
> validation
> only.  That will only work if you include the
> <s:head> attribute in the
> page.
> 
> 
> >
> >
> > My setup is that I have an Action class, which uses a
> Form to set and get f= ield values from the JSP page.
> >
> > In Struts1 I was using the validate(...) method in the
> Form class.
> >
> > It seems none of the Struts2 validation examples on
> the net are working for=  me.
> >
> >
> 
> You haven't mentioned whether you're using XML
> validation or
> annotation-based validation.  If by not working you mean
> "does nothing",
> then your XML file is probably incorrectly named or your
> missing an
> annotation.  (You need to enable this separately from
> client-side
> validation)
> 
> Whatever the case, the main difference between Struts1 and
> Struts2 here
> is that Struts2 performs validation on the Object, not on
> the form
> parameters.
> That means, to check that "fieldName" is
> non-blank, it will call
> getFieldName() after setFieldName() was called by the
> ParametersInterceptor.
> 
> A common problem is to forget the getter, but in that case
> Struts will
> keep returning INPUT (validation failed) instead of
> invoking your action.
> 
> Hope that helps,
> Jeromy Evans
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 
> The contents of this email are confidential and may be
> subject to legal or professional privilege and copyright.
> No representation is made that this email is free of
> viruses or other defects. If you have received this
> communication in error, you may not copy or distribute any
> part of it or otherwise disclose its contents to anyone.
> Please advise the sender of your incorrect receipt of this
> correspondence.
> 
> ---------------------------------------------------------------------
> 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