Announcement Announcement Module
No announcement yet.
Architecting multi-page spring application Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Architecting multi-page spring application

    I have a question for the spring experts out there, I am currently working on a web based project for a client, and i have a particularly annoying requirement that i just can't seem to provide a reasonable solution to,

    The client has some forms that need to be automated, each form has about 15 pages or more (in some cases) of questions etc that need to be answered before the user can submit the form. Now i know Spring web flow is the perfect solution to this kind of requirement, but the pickle now is that, the client wants to be able to version the forms, about 40 in total.

    Version 1 of the form has 100 questions and 15 pages which applicant1 completes and submits for approval;

    The client now decides to remove some of the questions or pages and publish this as version 2; now applicant 2 completes version 2 of the form and submits for approval.

    The challenge now is when applicant 1 pulls up his application, it should still reference version 1, and applicant 2 should see his application details in version 2.

    Proposed Solution

    1. Use the open symphony propertyset library to store the form details, and have freemarker templates for each version on the file system, and based on the version no load the appropriate template a populate with propertyset data. Also validation with this approach is tricky.

    The challenge with this approach is that propertyset is no longer active as a project and documentation is very sparse, and of course getting resources ramped up on this might be tricky.

    2. Create a database model for storing the form meta-data, and just have a generic freemarker template for the form, and load it based on the version number etc; the question is how to define validation for this approach as well.(required fields etc)..

    Any thoughts? i'm trying to put the architecture together before development commences, and need to make a wise choice on this particular requirement.