wood burning stoves 2.0*
The moose likes JSF and the fly likes Saving form without validation Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Java » JSF
Bookmark "Saving form without validation" Watch "Saving form without validation" New topic
Author

Saving form without validation

Matt Gaunt
Ranch Hand

Joined: Sep 05, 2003
Posts: 34
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

Joined: Jan 16, 2009
Posts: 12
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

Joined: Sep 11, 2006
Posts: 82
    
    5
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

Joined: Dec 16, 2011
Posts: 1

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.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: Saving form without validation