As you suggest, a solution is to use hidden fields on all pages for boolean 
(checkboxed) properties from other pages of
the "wizard-like" form.

As reset() gets the mapping I would suggest this :

- extend ActionMapping to add a new property "checkboxes"
- use this extended ActionMapping for your action, setting the new property with a 
comma separated list of boolean
properties that this mapping should handle :

<action className="com.foo.WizardActionMapping"
        name="wizardForm"
        type="...">
  <set-property property="checkboxes" value="checbox1, checkbox2" />
  <forward .../>
</action>

- in reset(), cast mapping to your extended mapping, and use it to get the list of 
boolean properties to reset. (this is
example test, not tested and should not compile)

resest(mapping, request) {
    if (mapping instanceOf WizardActionMapping) {
        WizardActionMapping wizardMapping = (WizardActionMapping) mapping;
        StringTokenizer tokenizer =
            new StringTokenizer(wizardMapping.getCheckBoxes(), ",");
        while (tokenizer.hasMoreToken()) {
            String checkbox = tokenizer.nextToken().trim();

            // reset checkbox
            if ("checbox1".equals(checkbox)) {
                checbox1 = false;
            }
            ...
        }
    }
}

If you find a good portable solution, you should redistribute it in Scaffold Struts 
tools (contribs), as I think it is a
common problem.

Hope it will help you.

Nico.


> Hello everybody,
>
> I'm trying to implement a multipage form, with at least one checkbox.
> To solve the problem with unchecked boxes not being submitted to the server,
> I implemented the reset() method to set my checkboxValue to false.
>
> However this solution does not work in a multipage form,
> as the reset() method is called for every page of my form,
> even the pages where my checkbox is not on.
>
> For ex. a 3 page form
> I check the box on page1, submit and go to page 2 --> everything works fine
> fill in page 2, submit and got to page3 --> not ok
>
> reset is called --> checkboxvalue back to false, and my bean is not
> repopulated with the correct value
> because my checkbox was not on page2.
>
> Does anybody know an elegant solution to this problem?
> Or am I forced to put a hidden parameter with the same name/value pair as my
> checkbox
> on the pages where my checkbox is not on.
>
> thx for your time,
>
> Nicolas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to