• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Liutauras Vilda
  • Ron McLeod
Sheriffs:
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Saloon Keepers:
  • Scott Selikoff
  • Tim Holloway
  • Piet Souris
  • Mikalai Zaikin
  • Frits Walraven
Bartenders:
  • Stephan van Hulst
  • Carey Brown

struts validator. stoping on first validation error.

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am using struts validator framework for both client and server side validations. The problem is validations of the same type occur together. But I want all validations for a particular field to be finished first and if that field passes all validations, then only validations for the next field should take place and so on.
ex: say I have two text fields.
field 1: validations are: required, mask (checks a regular expression)
field 2: validations are : required, integer

if both the fields are empty,on click of submit button an alert is shown as:
field 1 is required
field 2 is required

but I want validation to stop after reporting validation error for field 1 only. Once both the validations for field 1 are done, then only it should alert for the second field.

Please help. I also tried with the "stopOnError" property
in the plug-in tag in struts-config.xml, but it didn't work out.
 
Ranch Hand
Posts: 164
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
can you post code snippets for validation.xml and your jsp file...
 
Ranch Hand
Posts: 4864
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
In order to do this, you're going to have to write custom code. Here's what I'd suggest:
  • Use your browser's "view source" function to look at the rendered HTML page including the JavaScript that Struts creates for client-side validation.
  • Analyse the code and observe how the various validation functions are called
  • Create your own MyValidate function that performs the validations the way you want them done. Your function can still call the struts validation functions, but in a different order.
  • Change the onsubmit event of the <html:form> tag to point to your function.

  •  
    Ranch Hand
    Posts: 948
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I did a little searching around for that stopOnError setting (is it actually stopOnFirstError?). Looking at the source code for ValidatorPlugIn.java I see the following quotes:

    "Informs the Validators if it has to stop validation when finding the first error or if it should continue. Default to true to keep Struts 1.1 backwards compatibility."

    "A boolean indicating whether JavaScript validation should stop when it finds the first error (Struts 1.1 behaviour) or continue validation."

    In the Struts 1.2.4 release notes I see the following quote:

    "You can now force the clientside Javascript validation to check all constraints, instead of stopping at the first error. By setting a new property, stopOnFirstError, on the Validator PlugIn to false."

    I have to admit that I have never used client-side JavaScript validation. Is the default behavior to show an alert box with all the fields that failed validation or just the first one?

    - Brent
     
    I would challenge you to a battle of wits, but I see you are unarmed - shakespear. Unarmed tiny ad:
    Smokeless wood heat with a rocket mass heater
    https://woodheat.net
    reply
      Bookmark Topic Watch Topic
    • New Topic