Hi Kirk, Rather than using command driven default on the initial load of the form you could create a subclass to the action, for example "GetForm". In that class you set the default values to true. The parent class "SubmitForm" is changed to set the default values to false.
- Initial load of the form is made by calling "GetForm". - When the user submits the form they call the parent action "SubmitForm". The checkbox values actually submitted will be set and from what I understand this will behave the way you want. I work like this alot but in my case the "GetForm" does "real" work and retrieves the existing "default" data from a database. Hope this can be of some help. Cheers, Dick Zetterberg [EMAIL PROTECTED] ----- Original Message ----- From: "Kirk Rasmussen" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, December 18, 2002 7:01 PM Subject: [OS-webwork] RE: Opensymphony-webwork digest, Vol 1 #246 - 10 msgs > --__--__-- > > Message: 3 > Date: Tue, 17 Dec 2002 18:46:02 -0800 > From: "Kirk Rasmussen" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Subject: [OS-webwork] Maintaining checkbox state in feedback loop > Reply-To: [EMAIL PROTECTED] > > Hello everyone, > Please excuse this newbie question but I'm still coming up to speed on = > WW and I've run into a little problem with checkboxes. There wasn't an = > example in the distribution that I could find for the following = > situation. > > On my form I have the following: > > <form action=3D"<webwork:url page=3D"foo.action"/>" method=3D"POST"> > <ui:textfield label=3D"'Email'" name=3D"'email'" maxlength=3D"100"/> > <ui:textfield label=3D"'Confirm email'" name=3D"'confirmedEmail'" = > maxlength=3D"100"/> > <ui:checkbox label=3D"'Check here to receive newsletter'" = > name=3D"'newsletter'" fieldValue=3D"true"/> > </form> > > On initial load I want the checkbox to default to checked. In my Action = > class I have: > > protected boolean newsletter =3D true; > protected boolean promotions =3D true; > > public boolean getNewsletter() > { > System.err.println( "getNewsletter()" ); > =20 > return newsletter; > } > =20 > public void setNewsletter( boolean checked ) > { > System.err.println( "setNewsletter()" ); > =20 > this.newsletter =3D checked; > } > > This works fine on initial load (foo!default.action) but fails on the = > POST feedback loop (e.g. user enters invalid e-mail address) if I = > deselect the newsletter checkbox. The checkbox will stay checked = > because the internal state has already been set to true. > > Since there is no parameter being passed to the WW dispatcher, = > setNewletter(false) will never get called, right? How do I handle a = > "missing" parameter in WW??? > > Am I missing something? =20 > > Thanks, > Kirk Rasmussen > Lucasfilm Ltd. > > --__--__-- > > > Message: 4 > > From: "Cameron Braid" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Subject: RE: [OS-webwork] Maintaining checkbox state in feedback loop > > Date: Wed, 18 Dec 2002 14:47:44 +1000 > > Reply-To: [EMAIL PROTECTED] > > > > I am not an expert on WW, though the normal way to deal with 'missing' > > http data is to set a default value for the property and it can be > > overridden by the request parameter... > > > > i.e. if you set > > > > protected boolean newsletter = false; > > > > instead of true, then WW will call the setNewsletter(true) when the > > checkbox is checked. > > > > Cam > > > > But the problem is I want the default to be true. I guess I > could have a hidden input value that set it to false so that > there is always at least one "newsletter" parameter passed to > the action, though it seems sort of hackish to me since it > has dependencies on the HTML form. > > Is there a way to get the original parameter map? I looked at > the code for ActionSupport and it doesn't look like the map gets > saved. I suppose I could get the HttpServletRequest and look for > the parameter in there but it ties the action to the servlet API. > > Is there a way to deal with this in a more generic fashion? > > Thanks, > Kirk Rasmussen > Lucasfilm Ltd. > > > > > ------------------------------------------------------- > This SF.NET email is sponsored by: Order your Holiday Geek Presents Now! > Green Lasers, Hip Geek T-Shirts, Remote Control Tanks, Caffeinated Soap, > MP3 Players, XBox Games, Flying Saucers, WebCams, Smart Putty. > T H I N K G E E K . C O M http://www.thinkgeek.com/sf/ > _______________________________________________ > Opensymphony-webwork mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork ------------------------------------------------------- This SF.NET email is sponsored by: Geek Gift Procrastinating? Get the perfect geek gift now! Before the Holidays pass you by. T H I N K G E E K . C O M http://www.thinkgeek.com/sf/ _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork