Re: unexpected behavior with a checkbox.

2008-01-10 Thread David Durham, Jr.
  The issue is that an unchecked checkbox does not send a value when a
  form is submitted, so:

 This depends on (a) whether or not we're talking about S2 and (b) if we are
 whether or not we're using an interceptor stack that includes the checkbox
 interceptor.

I just meant that an HTTP Server won't see a request parameter for an
unchecked checkbox [sic], because a W3C conforming HTML browser won't
send one [request parameter].  The checkbox interceptor seems kludgey
to me, but if it solves this problem for people in a mostly
transparent way, then it's a good thing.


-Dave

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



Re: unexpected behavior with a checkbox.

2008-01-09 Thread Dave Newton
--- David Durham, Jr. wrote:
 Peter L. Berghold wrote:
 Where the trouble comes in is if the field is unchecked which I thought
 would set the value of the Boolean to false.  It doesn't, it remains
 as a true.

 How do I implement behavior where if the checkbox is unchecked it sets
 the corresponding property of the form to false?
 
 The issue is that an unchecked checkbox does not send a value when a
 form is submitted, so:

This depends on (a) whether or not we're talking about S2 and (b) if we are
whether or not we're using an interceptor stack that includes the checkbox
interceptor.

d.


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



Re: unexpected behavior with a checkbox.

2008-01-03 Thread David Durham, Jr.
On Jan 2, 2008 10:59 PM, ravi_eze [EMAIL PROTECTED] wrote:

 hi,

 the workaround works, but causes problems if the checkbox should be
 validated. More over the soln is based on assumptions that need not hold
 always.

Which solution are you saying is based on assumptions that need not
hold, and why?  I think you'll find that my solution wherein you 1)
you don't use session-scoped action forms (or the equivalent in s2)
and 2) you don't initialize checkboxes in action form initialization,
covers all bases, including validation.  Really, it's the only viable
option for struts 1, that I know of.  If the assumption that doesn't
hold is that you need session-scoped-like form behavior, then that's
easily resolved.

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



Re: unexpected behavior with a checkbox.

2008-01-02 Thread David Durham, Jr.
 Where the trouble comes in is if the field is unchecked which I thought
 would set the value of the Boolean to false.  It doesn't, it remains
 as a true.

 How do I implement behavior where if the checkbox is unchecked it sets
 the corresponding property of the form to false?

The issue is that an unchecked checkbox does not send a value when a
form is submitted, so:

   request.getParameter(myUncheckedCheckbox) == null

You can run this check in an action, and modify forms appropriately.
I can say more on this topic, if you need, wrt. session-scoped forms
(and why you should not use them).

-Dave

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



Re: unexpected behavior with a checkbox.

2008-01-02 Thread Peter L. Berghold
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

David Durham, Jr. wrote:

 
request.getParameter(myUncheckedCheckbox) == null
 



Oh.. yuck.. but thanks David for that work around.  Tried it and it
works for my purposes.

- 

Peter L. Berghold   Unix Professional
[EMAIL PROTECTED] AIM: redcowdawg YIM: blue_cowdawg
Those who fail to learn from history are condemned to repeat it.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHe+S6UM9/01RIhaARAs8ZAJ42nyChc1WFlTvEDTz9rWc2QOKG3gCdGzlj
wCXoRk5rrV7ZbU8JG/who1E=
=R9NI
-END PGP SIGNATURE-

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



Re: unexpected behavior with a checkbox.

2008-01-02 Thread David Durham, Jr.
 
 request.getParameter(myUncheckedCheckbox) == null
 

 Oh.. yuck.. but thanks David for that work around.  Tried it and it
 works for my purposes.

There are things that can be done to avoid to the ugly null check.

1. Don't initialize check-box fields.  No initial values.
2. Don't use session-scoped forms.

It sounds like you need to start with a blank or default form that has
a check-box checked.  Perhaps the user should receive spam?  :)  I
haven't thought about that case much, but it seems similar in that, if
you don't want to use an initial value for reasons previously
mentioned, you're faced with using some other means to indicate this
box is checked by default.  If you have a display new form action,
you can put a value on the form whereby the box will start out
checked.  This is different than defining an initial value.   So long
as you don't specify an initial value for check-box fields, and Struts
creates a new form object for each submission, the state of a
check-box is preserved within an ActionForm.

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



Re: unexpected behavior with a checkbox.

2008-01-02 Thread ravi_eze

hi,

the workaround works, but causes problems if the checkbox should be
validated. More over the soln is based on assumptions that need not hold
always. There are 2 possible soln for this in my view:

1. use checkbox interceptor
(http://struts.apache.org/2.x/docs/checkbox-interceptor.html). But i found
that this doesnt work if u are using s:checkboxList .. the reson being
that the corresponding hidden text-field (__checkbox_checkboxListName) 
is not produced. (may be u can try creating this hidden field). Now use
checkbox interceptor before param interceptor of ur config xml file.

...
interceptor-ref name=conversionError /
interceptor-ref name=checkbox /
interceptor-ref name=params / 
...

2. Create a reset interceptor!: now what is this? Write a custom interceptor
(http://struts.apache.org/2.x/docs/writing-interceptors.html) which would
reset all the attributes/ field/ only chcek-box-field variables of the
action class. Place this interceptor as below: 
...
interceptor-ref name=resetInterceptor
  checkboxListvariable
/interceptor-ref
interceptor-ref name=conversionError /
interceptor-ref name=checkbox /
interceptor-ref name=params /
...

Now what happens is: always before the paramas are loaded from the request
they are all reset to null/ what ever. Now if the params do not have the
checkbox field in it then the corresponding variables are not touched; this
way ur work is achieved. This would fire validations also. I am currently
using this approache and find it very useful. 

Hope this helps :)

cheers,
Ravi 



David Durham, Jr. wrote:
 
 
 request.getParameter(myUncheckedCheckbox) == null
 

 Oh.. yuck.. but thanks David for that work around.  Tried it and it
 works for my purposes.
 
 There are things that can be done to avoid to the ugly null check.
 
 1. Don't initialize check-box fields.  No initial values.
 2. Don't use session-scoped forms.
 
 It sounds like you need to start with a blank or default form that has
 a check-box checked.  Perhaps the user should receive spam?  :)  I
 haven't thought about that case much, but it seems similar in that, if
 you don't want to use an initial value for reasons previously
 mentioned, you're faced with using some other means to indicate this
 box is checked by default.  If you have a display new form action,
 you can put a value on the form whereby the box will start out
 checked.  This is different than defining an initial value.   So long
 as you don't specify an initial value for check-box fields, and Struts
 creates a new form object for each submission, the state of a
 check-box is preserved within an ActionForm.
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

-- 
View this message in context: 
http://www.nabble.com/unexpected-behavior-with-a-checkbox.-tp14572206p14591715.html
Sent from the Struts - User mailing list archive at Nabble.com.


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



unexpected behavior with a checkbox.

2008-01-01 Thread Peter L. Berghold
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi folks,

I have a form that the values for each field is populated as a result of
a database query.  One of the fields on the form is rendered as a
checkbox and the corresponding table column is a boolean.

When I pull in a true value from the database the reset() method of my
form sets the checkbox accordingly.

When the page is rendered the checkbox is set the way I expect.  So far,
so good.

Where the trouble comes in is if the field is unchecked which I thought
would set the value of the Boolean to false.  It doesn't, it remains
as a true.

How do I implement behavior where if the checkbox is unchecked it sets
the corresponding property of the form to false?

- 

Peter L. Berghold   Unix Professional
[EMAIL PROTECTED] AIM: redcowdawg YIM: blue_cowdawg
Those who fail to learn from history are condemned to repeat it.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHeuK3UM9/01RIhaARAkOwAJ9uNnENpwIVb9XAl8bR26xKvfEgXwCfSKXM
Dwcd0MqGUCQ2O09XMgP+TMk=
=Qbl6
-END PGP SIGNATURE-

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