File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Saving form without validation

 
Matt Gaunt
Ranch Hand
Posts: 34
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Recently I have been working on a multi-page form (wizard) for internet users. One of the requirements is the necessity to save data already entered within the form so that a user can come back to it later. Is there a way to submit the data and ensure it is not validated when the save button is hit? In essence, I would like the validation phase skipped when selecting the save button but not skipped when the Submit button is selected?

Regards

Matt
 
Joe ONeil
Greenhorn
Posts: 12
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
immediate="true" but you will not be able to read any of the input fields this is good if you are going to open a popup or go to another div
 
Ed Burns
author
Ranch Hand
Posts: 82
5
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello Mr. Gaunt, thanks for your question. This is a tough one because the validation guarantee is one of the bulwark principles of JSF security. Nonetheless, your use case is a valid one (ha!).

I haven't yet done this myself, but with the new @FacesComponent annotation and the composite component features it's very easy to do so. Here's a sketch. When I have more time I'll flesh it out in a blog entry.

Make a composite component, the tag for which is, say my:bypassValidation. For this component, make a custom top level component: (use the @FacesComponent annotation on a java class that extends from UINamingContainer, then use the componentType attribute on the cc:interface composite component tag. The value of the annotation an the right hand side of componentType must match.

In the custom top level component with the @FacesComponent annotation, override the processValidations method to take a look at piece of state (probably not a query parameter, for security reasons) and simply be a no-op or call super.processValidations() depending on the value of the state.

That should do the trick.

Ed
 
Nicolas Romanetti
Greenhorn
Posts: 1
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

We have tried to implement your suggestion without any success.
Here is another approach, may be simpler
http://www.springfuse.com/2011/12/15/skip-jsf-validation-depending-on-action.html

It would be a real plus to provide this natively in JSF. An attribute on commandButton such as skipValidationFor="xxx" where xxx could be '@all' or a list of ids, would be so convenient.
With all my respect, I think it is not up to the framework to prevent certain usage. In the end, people either choose another framework or loose some precious time elaborating workarounds.

Sincerely,

Nicolas.
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic