Hi all,
I've noticed a problem with forms containing optional fields.
Suppose you have a form containing some optional fields, that the
user can fill with some value or leave blank. If form validation
fails (for example because the user has not filled in values for
some _other_ mandatory fields) the usual pattern is to redisplay
the form page to the user together with some error messages.
However, due to the way the form-field tags like <struts:text>
are implemented, the optional fields will then contain default
values, if the associated properties are not of type String.
Example:
Imagine a slightly modified subscription.jsp from the struts-example,
that asks the user for an additional (and optional) Integer property.
<tr>
<th align="right">
<struts:message key="prompt.intProperty"/>
</th>
<td align="left">
<struts:text property="intProperty"/>
</td>
</tr>
If the user enters invalid values for - let's say - the mail hostname
and leaves the intProperty field blank, the subscription.jsp will be
redisplayed. This time, the intProperty field will contain a 0 (instead
of being empty). Depending on the semantic behind intProperty this could
make a serious difference, when this form is resubmitted.
Is this behaviour intended ?
--
Matthias mailto:[EMAIL PROTECTED]