Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 764663
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T16:45:53+00:00 2026-05-14T16:45:53+00:00

I have a pretty complex form with lots of inputs and validators. For the

  • 0

I have a pretty complex form with lots of inputs and validators. For the user it takes pretty long time (even over an hour) to complete that, so they would like to be able to save the draft data, even if it violates rules like mandatory fields being not typed in.

I believe this problem is common to many web applications, but can’t find any well recognised pattern how this should be implemented. Can you please advise how to achieve that?

For now I can see the following options:

  1. use of immediate=true on “Save draft” button doesn’t work, as the UI data would not be stored on the bean, so I wouldn’t be able to access it. Technically I could find the data in UI component tree, but traversing that doesn’t seem to be a good idea.
  2. remove all the fields validation from the page and validate the data programmaticaly in the action listener defined for the form. Again, not a good idea, form is really complex, there are plenty of fields so validation implemented this way would be very messy.
  3. implement my own validators, that would be controlled by some request attribute, which would be set for standard form submission (with full validation expected) and would be unset for “save as draft” submission (when validation should be skipped). Again, not a good solution, I would need to provide my own wrappers for all validators I am using.

But as you see no one is really reasonable. Is there really no simple solution to the problem?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T16:45:54+00:00Added an answer on May 14, 2026 at 4:45 pm

    It’s indeed not that easy. Validation is pretty tight coupled in JSF lifecycle.

    I would personally go for option 1. True, dirty work, but you can just hide that away in an utility class or so. Just grab the <h:form> in question from the viewroot, iterate over its children recursively, hereby testing if component instanceof EditableValueHolder is true, store the found id-value pair in sort of Map and finally persist it.

    As a fourth alternative, you could save all the data independently using ajaxical powers. jQuery is helpful in this.

    $.post('/savedraft', $('#formid').serialize());
    

    It only requires Javascript support at the client side.


    Update: the JSF utility library OmniFaces has a <o:ignoreValidationFailed> taghandler for the exact purpose. It was indeed not a simple solution as it requires a custom <h:form> as well. It does its job by providing a custom FacesContext instance during the validations and update model values phases which does a NOOP in the validationFailed() and renderResponse() methods. So the components are still invalidated and the messages are still attached, but it would still proceed to the update model values and invoke application phases.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a pretty complex form that provides real-time validation and feedback to the
I have a pretty basic windows form app in .Net. All the code is
I have a complex form in Ruby on Rails 2.3.5, here's the structure for
I have built a fairly complex form which includes a hidden section that the
I have some pretty complex reports to write. Some of them... I'm not sure
I have a pretty complex dom-tree with various exceptions etc. So I don't want
I have a class that represents a pretty complex object. The objects can be
This is a pretty complex MySQL query for me. what i have is a
I was wondering if I'm missing something. I have a pretty complex app, but
I have pretty much finished my first working Symbian application, but in my hastened

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.