Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Struts+Multipage Validation

 
Sai P Kumar
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I have a single ActionFormbean (in request scope) and now there are multiple pages using the same ActionForm Bean. i need to validate all this pages. and all the feilds on all the pages are a SUB SET of Action Form Bean (IN REQUEST SCOPE).
I need some help regarding the way to proceed.
Thank you.
Regards Sai.
 
Ray Stojonic
Ranch Hand
Posts: 326
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
With your request, or possibly in your form, include a field that has a value which is unique to each page. Then, when processing a page request, you know from which page the request is originating and can validate only the fields that appear on that page. Given that you know which page the request came from, you can also return the user back to that page if a validation error occurs.
I use the validate method within the form, I'm not sure how using the Validator class would affect this approach.
hth
 
Srikanth Shenoy
author
Ranch Hand
Posts: 184
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you use ValidatorForm from org.apache.struts.validator package, the page variable is in-built. The validate method is also implemented and it invokes the commons validator by passing the page number.
You have to just populate the right page value during form submission.
Write your validations in the xml as follows by including the page number:
<form name="CustomerForm">
<field property="firstName" page=�2� depends="required">
<arg0 key="customerform.firstname"/>
</field>
</form>
Srikanth
Author: Struts Survival Guide - Basics to Best Practices
 
Andras Kerekes
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi!

I tried the suggested solution and I used the page attribute of DynaValidatorForm. But I have a problem. Struts does not recognize that I set the page attribute.

I have a multipage registration form and I build my pages with Tiles.
I get the page's value with jsp:useBean and jsp:getProperty. When I set page with jsp:setProperty I get the proper value, but the Struts works with the initialized value, 0. When I try to set page's value in WizardAction (when next or previous event is happened) I get 0 and Struts works also with 0. The scope is session everywhere. I don't understand it. Could anybody helps me?

Kind regards,
Andras
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic