What's now happening is that the validation correctly moves me back to the
jsp specified by input but the form becomes blank (doesn't keep the
information that was entered) and the <html:errors> returns nothing.
I can sort of get around this by calling validate and adding attributes to
the request but I'm pretty sure that I shouldn't need to do so. So I'm
wondering what's going wrong.
struts-config.xml:
<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts
Configuration 1.3.5//EN" "
http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="donorBean" type="
com.softrek.donation.AllDonationInformationFormBean3"/>
</form-beans>
<action-mappings>
<action path="/donation3" type="com.softrek.donation.DonationAction3"
name="donorBean" scope="session"
input="/donation3.jsp" validate="true">
<forward name="error" path="/error3.jsp"/>
<forward name="success" path="/thankYou3.jsp"/>
<forward name="firstPage" path="/donation3.jsp"/>
<forward name="secondPage" path="/honoree3.jsp"/>
<forward name="thirdPage" path="/payment3.jsp"/>
</action>
</action-mappings>
<message-resources parameter="/WEB-INF/ErrorMessages"/>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator/validator-rules.xml
,/WEB-INF/validator/validations.xml"/>
</plug-in>
</struts-config>
public class AllDonationInformationFormBean3 extends ValidatorForm {
...
// This is the addition I seem to need.
public ActionErrors validate(ActionMapping mapping, HttpServletRequest
request) {
ActionErrors actionErrors = super.validate(mapping, request) ;
request.setAttribute("sessionForm", this) ; // If I don't do this the
form will be blank after an error.
request.setAttribute("errors", actionErrors) ;
return actionErrors ;
}
}
My validations.xml file - working partially
<?xml version='1.0' encoding='windows-1252'?>
<form-validation>
<formset>
<!-- Start of validation rules for each bean -->
<form name="donorBean">
<field property="firstname" depends="required">
<arg0 key="validation.error.firstname"/>
</field>
<field property="zip" depends="required">
<arg0 key="validation.error.zip"/>
</field>
<field property="last" depends="required" page="1">
<arg0 key="validation.error.last"/>
</field>
<field property="line1" depends="required" page="1">
<arg0 key="validation.error.line1"/>
</field>
<field property="email" depends="email" page="1">
<arg0 key="validation.error.email"/>
</field>
<field property="t_amount" depends="required" page="1">
<arg0 key="validation.error.amount"/>
</field>
<field property="cc_number" depends="required, creditCard" page="1">
<arg0 key="validation.error.ccnumber"/>
</field>
<!-- End of validation rules for each bean -->
</form>
</formset>
</form-validation>
Part of my jsp: only the getAttribute type of error shows up. the
<html:errors parts are empty.
I'd like to have them work so I can dump the getAttribute("errors") part.
<form action="../donation3/donation3.do" method="post">
<input type="hidden" name="pagename" value="donationPage"/>
<p style="background-color:rgb(0,255,255); font-size:large;">Donor
Information</p>
All errors with Java script
<%= request.getAttribute("errors") == null ? "No errors" :
request.getAttribute("errors") %><br/>
All errors with strut tag
<html:errors/><br/>
Single error report with strut tag
<html:errors property="firstname"/>
<p>*Indicates required field</p>
<p>
On 11/7/06, Romu <[EMAIL PROTECTED]> wrote:
validations are linked to xml files:
<action
path="/XXX"
name="yourForm"
scope="session"
validate="false"
type="yyyAction">
<forward name="succees" path="/WEB-INF/jsp/success.jsp"/>
</action>
with name tag, struts will look in validation.xml files to see the rules
etc
, and it wil generates the javascript .
check if u got javascript validation code in your jsp ?
2006/11/7, Thom Burnett <[EMAIL PROTECTED]>:
>
> What are common simple mistakes that would prevent validation from
> occuring?
> I've got a simple struts application that runs correctly except that
> validation doesn't occur. The form info is accepted as correct when
> required
> information is missing.
>
> I'm trying to figure out what's missing from my setup or understanding.
>
> The ValidatorForm (my extension) class has appropriate get and set
> functions
> for all fields.
> (The fields are spread over 3 jsp pages, if that matters.)
> I've added the validator plugin to the struts-config, the action mapping
> has
> validate="true" and a valid input path, added the validation-rules and
> validation.xml file, added the resource properties file with the
standard
> errors (taken from the struts file).
>
> If I write my own validate method in the form bean that validation works
> properly. It's my understanding that if I'm using the validation
> framework,
> I should not have a validate() method in the form.
>
> Am I misunderstanding something? Any ideas what might be setup wrong or
> missing.
>
>