You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by davout <da...@dsl.pipex.com> on 2007/04/01 16:10:18 UTC

Re: Struts 1.2 validation not working!

I downloaded the r1.2.7 release and used this as my comparison basis. My IDE
is 'MyEclipse' which uses a Struts 1.2 release.

The xml files are exactly the same. I used the 'beyond compare' file
comparison utility to view this, and there are no differences. .

What next?



Niall Pemberton-2 wrote:
> 
> Use the validation-rules.xml that comes with the version of Struts
> you're using. This exception usually happens when people upgrade their
> version of Struts but don't use the validation-rules.xml that ships
> with the new version.
> 
> Niall
> 
> On 3/29/07, davout <da...@dsl.pipex.com> wrote:
>>
>> I've added Struts validation to my application and I'm getting an
>> exception
>> when I try to use the 'required' validation type.
>>
>> Here's the code...
>>
>> The 'validation.xml' file...
>>
>> [Code]
>>
>>  <?xml version="1.0" encoding="UTF-8"?>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>  [/code]
>>
>> the start of the 'validation-rules.xml' file...
>>
>> [Code]
>>
>>
>>
>>
>>
>>
>>  [/code]
>>
>> the related action class...
>>
>> [Code]
>>  public class ImpactNegationEditAction extends
>> AbstractImpactNegationAction
>>        implements EntityIDs, ImpactNegationIDs {
>>
>>     public void save_onClick(FormActionContext aCtx) {
>>        ImpactNegationEditForm aForm = (ImpactNegationEditForm)
>> aCtx.form();
>>        aCtx.addErrors(aForm.validate(aCtx.mapping(),aCtx.request()));
>>        if (aCtx.hasErrors() == false) {
>>           // is add?
>>           if (aForm.getImpactNegationIDInt() == ID_UNASSIGNED) {
>>              // verify title is unique
>>              try {
>>                 ImpactNegation anOther =
>> getManager(aCtx).findByTitle(aForm.getTitle());
>>                 if (anOther != null) {
>>
>> addFieldError(aCtx,"title","error.duplicateField","Title");
>>                 }
>> [/code]
>>
>> the related form...
>>
>> [Code]
>>
>>  public abstract class AbstractSorForm extends FWValidatorForm {
>>  }
>>
>>  public class ImpactNegationEditForm extends AbstractSorForm {
>>
>>     private static final long serialVersionUID = 3604637580339030809L;
>>
>>     private String fImpactNegationID;
>>     private String fTitle;
>>     private String fDesc;
>>     private String fDisplayOrder;
>>     private String fPercent;
>>     private String fCaptionDetail = null;
>>     private String fFormTitle = null;
>>
>>     public ImpactNegationEditForm() {
>>        // TODO Auto-generated constructor stub
>>     }
>>
>>     public String getDesc() {
>>        return fDesc;
>>     }
>>
>>     public void setDesc(String aDesc) {
>>        fDesc = aDesc;
>>     }
>>
>>     public String getDisplayOrder() {
>>        return fDisplayOrder;
>>     }
>>     public int getDisplayOrderInt() {
>>        return Integer.parseInt(fDisplayOrder);
>>     }
>>
>>     public void setDisplayOrder(String aDisplayOrder) {
>>        fDisplayOrder = aDisplayOrder;
>>     }
>>
>>     public String getImpactNegationID() {
>>        return fImpactNegationID;
>>     }
>>
>>     public int getImpactNegationIDInt() {
>>        return Integer.parseInt(fImpactNegationID);
>>     }
>>
>>     public void setImpactNegationID(String aId) {
>>        fImpactNegationID = aId;
>>     }
>>
>>     public String getPercent() {
>>        return fPercent;
>>     }
>>     public double getPercentDouble() {
>>        return Double.parseDouble(fPercent);
>>     }
>>
>>     public void setPercent(String aPercent) {
>>        fPercent = aPercent;
>>     }
>>
>>     public String getTitle() {
>>        return fTitle;
>>     }
>>
>>     public void setTitle(String aTitle) {
>>        fTitle = aTitle;
>>     }
>>
>>     public String getCaptionDetail() {
>>        return fCaptionDetail;
>>     }
>>
>>     public void setCaptionDetail(String aCaptionDetail) {
>>        fCaptionDetail = aCaptionDetail;
>>     }
>>
>>     public String getFormTitle() {
>>        return fFormTitle;
>>     }
>>
>>     public void setFormTitle(String aFormTitle) {
>>        fFormTitle = aFormTitle;
>>     }
>>  }
>> [/code]
>>
>> the JSP body file...
>>
>> [Code]
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> [/code]
>>
>> the exception thrown...
>>
>> [Code:]
>>
>> the exception thrown when the form is validated...
>>  ERROR: 18:54:18: org.apache.struts.validator.ValidatorForm:
>> org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object,
>> org.apache.commons.validator.ValidatorAction,
>> org.apache.commons.validator.Field,
>> org.apache.struts.action.ActionMessages,
>> org.apache.commons.validator.Validator,
>> javax.servlet.http.HttpServletRequest)
>>  org.apache.commons.validator.ValidatorException:
>> org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object,
>> org.apache.commons.validator.ValidatorAction,
>> org.apache.commons.validator.Field,
>> org.apache.struts.action.ActionMessages,
>> org.apache.commons.validator.Validator,
>> javax.servlet.http.HttpServletRequest)
>>    at
>> org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java:627)
>>    at
>> org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:557)
>>    at org.apache.commons.validator.Field.validateForRule(Field.java:811)
>>    at org.apache.commons.validator.Field.validate(Field.java:890)
>>    at org.apache.commons.validator.Form.validate(Form.java:174)
>>    at org.apache.commons.validator.Validator.validate(Validator.java:367)
>>    at
>> org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:112)
>>    at
>> com.eis.sor.struts.action.impactnegation.ImpactNegationEditAction.save_onClick(ImpactNegationEditAction.java:84)
>>    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.cc.framework.adapter.struts.ActionUtil.handleFormAction(Unknown
>> Source)
>>    at com.cc.framework.adapter.struts.FWAction.handleFormAction(Unknown
>> Source)
>>    at com.cc.framework.adapter.struts.ActionUtil.execute(Unknown Source)
>>    at com.cc.framework.adapter.struts.FWAction.execute(Unknown Source)
>>    at
>> com.eis.sor.struts.action.common.AbstractSorAction.execute(AbstractSorAction.java:30)
>>    at com.cc.framework.adapter.struts.FWAction.execute(Unknown Source)
>>    at
>> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
>>    at
>> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
>>    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:709)
>> [/code]
>>
>>
>> Any ideas???
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Struts-1.2-validation-not-working%21-tf3484580.html#a9727581
>> Sent from the Struts - User mailing list archive at Nabble.com.
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Struts-1.2-validation-not-working%21-tf3484580.html#a9778069
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Struts 1.2 validation not working!

Posted by Niall Pemberton <ni...@gmail.com>.
On 4/4/07, davout <da...@dsl.pipex.com> wrote:
>
> I downloaded Struts r1.2.4.  The r1.2.4 'validator-rules.xml' file is exactly
> the same as the file in my project.

The stack trace says that this is not true - I can re-create your
exact error by dropping the validator-rules.xml from Struts 1.2.7 into
the struts-examples webapp shipped with Struts 1.2.4. The "telltale"
is the fact that your stack trace shows
"org.apache.commons.validator.Validator" as a parameter - that was
added to Strut's validateRequired() method in the FieldChecks class in
Struts 1.2.7.

> The attached screenshot is a snapshot from the file compare utility.
> http://www.nabble.com/file/7647/struts.zip struts.zip
>
> What next?

Go check again that your looking at the right validator-rules.xml file
- maybe you have more than one copy around or your deploying a
different one.

Niall

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Struts 1.2 validation not working!

Posted by davout <da...@dsl.pipex.com>.
I downloaded Struts r1.2.4.  The r1.2.4 'validator-rules.xml' file is exactly
the same as the file in my project.

The attached screenshot is a snapshot from the file compare utility.
http://www.nabble.com/file/7647/struts.zip struts.zip 

What next?

-- 
View this message in context: http://www.nabble.com/Struts-1.2-validation-not-working%21-tf3484580.html#a9832090
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Struts 1.2 validation not working!

Posted by Niall Pemberton <ni...@gmail.com>.
On 4/1/07, davout <da...@dsl.pipex.com> wrote:
>
> I downloaded the r1.2.7 release and used this as my comparison basis. My IDE
> is 'MyEclipse' which uses a Struts 1.2 release.
>
> The xml files are exactly the same. I used the 'beyond compare' file
> comparison utility to view this, and there are no differences. .
>
> What next?

This error occurs when the configuration for a vaidation method
doesn't match up with the actual method signature. So in your case the
FieldChecks's validateRequired() method has a different method
signature from what is configured in the methodParams element for the
required validator in validator-rules.xml. As I said before, typically
this occurs when people ugrade to a newer version of Struts and forget
to upgrade the validation-rules.xml - but whatever the cause the
solution is the same - ensure you have the correct
validation-rules.xml for the version of Struts you're using.

Saying "My IDE is 'MyEclipse' which uses a Struts 1.2 release." is
vague - you need to determine which 1.2 version of Struts that is
(There are four "GA" quality releases of Struts 1.2 - they are 1.2.4,
1.2.7, 1.2.8 and 1.2.9). The MANIFEST.MF file in the struts jar should
tell you what version of struts you're using - when you find that out
download that version of Struts and grab the validator-rules.xml from
it.

Niall

> Niall Pemberton-2 wrote:
> >
> > Use the validation-rules.xml that comes with the version of Struts
> > you're using. This exception usually happens when people upgrade their
> > version of Struts but don't use the validation-rules.xml that ships
> > with the new version.
> >
> > Niall
> >
> > On 3/29/07, davout <da...@dsl.pipex.com> wrote:
> >>
> >> I've added Struts validation to my application and I'm getting an
> >> exception
> >> when I try to use the 'required' validation type.
> >>
> >> Here's the code...
> >>
> >> The 'validation.xml' file...
> >>
> >> [Code]
> >>
> >>  <?xml version="1.0" encoding="UTF-8"?>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>  [/code]
> >>
> >> the start of the 'validation-rules.xml' file...
> >>
> >> [Code]
> >>
> >>
> >>
> >>
> >>
> >>
> >>  [/code]
> >>
> >> the related action class...
> >>
> >> [Code]
> >>  public class ImpactNegationEditAction extends
> >> AbstractImpactNegationAction
> >>        implements EntityIDs, ImpactNegationIDs {
> >>
> >>     public void save_onClick(FormActionContext aCtx) {
> >>        ImpactNegationEditForm aForm = (ImpactNegationEditForm)
> >> aCtx.form();
> >>        aCtx.addErrors(aForm.validate(aCtx.mapping(),aCtx.request()));
> >>        if (aCtx.hasErrors() == false) {
> >>           // is add?
> >>           if (aForm.getImpactNegationIDInt() == ID_UNASSIGNED) {
> >>              // verify title is unique
> >>              try {
> >>                 ImpactNegation anOther =
> >> getManager(aCtx).findByTitle(aForm.getTitle());
> >>                 if (anOther != null) {
> >>
> >> addFieldError(aCtx,"title","error.duplicateField","Title");
> >>                 }
> >> [/code]
> >>
> >> the related form...
> >>
> >> [Code]
> >>
> >>  public abstract class AbstractSorForm extends FWValidatorForm {
> >>  }
> >>
> >>  public class ImpactNegationEditForm extends AbstractSorForm {
> >>
> >>     private static final long serialVersionUID = 3604637580339030809L;
> >>
> >>     private String fImpactNegationID;
> >>     private String fTitle;
> >>     private String fDesc;
> >>     private String fDisplayOrder;
> >>     private String fPercent;
> >>     private String fCaptionDetail = null;
> >>     private String fFormTitle = null;
> >>
> >>     public ImpactNegationEditForm() {
> >>        // TODO Auto-generated constructor stub
> >>     }
> >>
> >>     public String getDesc() {
> >>        return fDesc;
> >>     }
> >>
> >>     public void setDesc(String aDesc) {
> >>        fDesc = aDesc;
> >>     }
> >>
> >>     public String getDisplayOrder() {
> >>        return fDisplayOrder;
> >>     }
> >>     public int getDisplayOrderInt() {
> >>        return Integer.parseInt(fDisplayOrder);
> >>     }
> >>
> >>     public void setDisplayOrder(String aDisplayOrder) {
> >>        fDisplayOrder = aDisplayOrder;
> >>     }
> >>
> >>     public String getImpactNegationID() {
> >>        return fImpactNegationID;
> >>     }
> >>
> >>     public int getImpactNegationIDInt() {
> >>        return Integer.parseInt(fImpactNegationID);
> >>     }
> >>
> >>     public void setImpactNegationID(String aId) {
> >>        fImpactNegationID = aId;
> >>     }
> >>
> >>     public String getPercent() {
> >>        return fPercent;
> >>     }
> >>     public double getPercentDouble() {
> >>        return Double.parseDouble(fPercent);
> >>     }
> >>
> >>     public void setPercent(String aPercent) {
> >>        fPercent = aPercent;
> >>     }
> >>
> >>     public String getTitle() {
> >>        return fTitle;
> >>     }
> >>
> >>     public void setTitle(String aTitle) {
> >>        fTitle = aTitle;
> >>     }
> >>
> >>     public String getCaptionDetail() {
> >>        return fCaptionDetail;
> >>     }
> >>
> >>     public void setCaptionDetail(String aCaptionDetail) {
> >>        fCaptionDetail = aCaptionDetail;
> >>     }
> >>
> >>     public String getFormTitle() {
> >>        return fFormTitle;
> >>     }
> >>
> >>     public void setFormTitle(String aFormTitle) {
> >>        fFormTitle = aFormTitle;
> >>     }
> >>  }
> >> [/code]
> >>
> >> the JSP body file...
> >>
> >> [Code]
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> [/code]
> >>
> >> the exception thrown...
> >>
> >> [Code:]
> >>
> >> the exception thrown when the form is validated...
> >>  ERROR: 18:54:18: org.apache.struts.validator.ValidatorForm:
> >> org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object,
> >> org.apache.commons.validator.ValidatorAction,
> >> org.apache.commons.validator.Field,
> >> org.apache.struts.action.ActionMessages,
> >> org.apache.commons.validator.Validator,
> >> javax.servlet.http.HttpServletRequest)
> >>  org.apache.commons.validator.ValidatorException:
> >> org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object,
> >> org.apache.commons.validator.ValidatorAction,
> >> org.apache.commons.validator.Field,
> >> org.apache.struts.action.ActionMessages,
> >> org.apache.commons.validator.Validator,
> >> javax.servlet.http.HttpServletRequest)
> >>    at
> >> org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java:627)
> >>    at
> >> org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:557)
> >>    at org.apache.commons.validator.Field.validateForRule(Field.java:811)
> >>    at org.apache.commons.validator.Field.validate(Field.java:890)
> >>    at org.apache.commons.validator.Form.validate(Form.java:174)
> >>    at org.apache.commons.validator.Validator.validate(Validator.java:367)
> >>    at
> >> org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:112)
> >>    at
> >> com.eis.sor.struts.action.impactnegation.ImpactNegationEditAction.save_onClick(ImpactNegationEditAction.java:84)
> >>    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.cc.framework.adapter.struts.ActionUtil.handleFormAction(Unknown
> >> Source)
> >>    at com.cc.framework.adapter.struts.FWAction.handleFormAction(Unknown
> >> Source)
> >>    at com.cc.framework.adapter.struts.ActionUtil.execute(Unknown Source)
> >>    at com.cc.framework.adapter.struts.FWAction.execute(Unknown Source)
> >>    at
> >> com.eis.sor.struts.action.common.AbstractSorAction.execute(AbstractSorAction.java:30)
> >>    at com.cc.framework.adapter.struts.FWAction.execute(Unknown Source)
> >>    at
> >> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
> >>    at
> >> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
> >>    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:709)
> >> [/code]
> >>
> >>
> >> Any ideas???
> >>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org