I don't quite understand how DynaActionForm
gets populated when a form is submitted. The
form I have gets processed exactly as I expect,
except for a group of checkboxes (generated in
JSP by a custom tag I wrote). If I have one or
more checked it works fine. However, if I uncheck
all of them, it fails. The boxes come in checked
as they were before I unchecked all. I'm using
struts 1.1 and am generating
some checkboxes that look like this in
the JSP:
...
<form name="seriesProps" method="post" action="/ChangeSeriesProps.do"
style="margin-bottom:0;">
...
<tr>
<td valign="top"><input type="checkbox" name="categoryIds" value="2"/></td>
<td class="text" valign="top">
<img src="images/spacer.gif" width="1" height="1" alt="">Health & Fitness<br/>
<table cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><input type="checkbox" name="categoryIds" value="6"/></td>
<td class="text" valign="top"><img src="images/spacer.gif" width="1" height="1"
alt="">Diet<br/>
</td>
</tr>
<tr>
<td valign="top"><input type="checkbox" name="categoryIds" value="7"/></td>
<td class="text" valign="top">
<img src="images/spacer.gif" width="1" height="1" alt="">Fitness<br/>
</td>
</tr>
<tr>
...
When it hits my ChangeSeriesProps Action:
public ActionForward execute
(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response
) throws Exception
{
DynaActionForm vForm = (DynaActionForm)form;
log.debug("AAA: change properties: " + vForm.toString());
The log shows:
2004-05-19 18:47:38 DEBUG ChangeSeriesProps.java:52 - AAA: change properties:
DynaActionForm[dynaClass=seriesProps,categoryIds={7},title=Life's a Bowl of Cherries
xxx,description=Life is indeed a bowl of cherries
xxx,strategy=weekdays,weekdays={Monday,Wednesday,Friday}]
The struts-config.xml has this definition:
<form-bean name="seriesProps"
type="org.apache.struts.action.DynaActionForm">
<form-property name="title"
type="java.lang.String"/>
<form-property name="description"
type="java.lang.String"/>
<form-property name="categoryIds"
type="java.lang.String[]"/>
<form-property name="strategy"
type="java.lang.String" initial="deltaDays"/>
<form-property name="weekdays"
type="java.lang.String[]"/>
</form-bean>
...
<action path="/ChangeSeriesProps"
type="fi.els.action.ChangeSeriesProps"
name="seriesProps"
validate="false"
input="tiles.editSeriesProps"
parameter="method">
<forward name="success" path="/EditSeries.do"/>
<forward name="failure" path="/editSeriesProps.do"/>
<forward name="cancel" path="/EditSeries.do"/>
</action>
Any ideas why categoryIds is *not* empty?
Dean Hoover
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]