This problem is due to an odd behavior of the HTML for checkboxes. If a checkbox is unchecked, no parameter is sent to the server, and hence, no setter is called in the
Struts ActionForm. To get around this problem, you must override the reset method in your ActionForm, and in that method, set the value of each property associated with a checkbox to its unchecked value. Since struts calls the reset method before it calls the setters, any checkboxes that
are checked will cause the setters to override the values set in the reset method. Here's an example: