Yes this i already reported twice!
Please fix this.
I my self have fixed this by not doing a cast but calling toString() in the
OptionsTag.doEndTag()
// Construct iterators for the values and labels collections
Iterator valuesIterator = getIterator(name, property);
Iterator labelsIterator = null;
if ((labelName == null) && (labelProperty == null))
labelsIterator = getIterator(name, property); // Same coll.
else
labelsIterator = getIterator(labelName, labelProperty);
// Render the options tags for each element of the values coll.
while (valuesIterator.hasNext())
{
String value = valuesIterator.next().toString();
String label = value;
if (labelsIterator.hasNext())
label = labelsIterator.next().toString();
addOption(sb, value, label, selectTag.isMatched(value));
}
johan
----- Original Message -----
From: "Gordon Maclean" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, March 06, 2001 2:41 AM
Subject: non-String properties and html:options
>
> I want to present a selection of Integers for the user
> to choose. The jsp code is:
>
> <html:select property="beginYear">
> <html:options property="years"/>
> </html:select>
>
> The form bean has an indexed property "years":
> public Integer [] getYears();
>
> The above jsp code fails with this message:
>
> Root cause:
> java.lang.ClassCastException: java.lang.Integer
> at
> org.apache.struts.taglib.html.OptionsTag.doEndTag(OptionsTag.java:240)
>
> when org.apache.struts.taglib/html.OptionsTab.doEndTag tries a direct
> cast of Integer to String.
>
> I understand that the "beginYear" property must be settable from a
> String, but
> it seems that the options tag should be able to call toString when
> needed to
> display properties (to simplify incorporating existing beans into
> struts).
> I believe html:options does do toString when the "collection" attribute
> is specified.
>
> The following short fix to OptionsTag does the trick.
>
> Am I right that this is a bug/shortcoming with html:options, or is there
> a simple
> way around it (logic:iterator?) ?
>
>
> --- OptionsTag.orig Sat Feb 24 11:36:21 2001
> +++ OptionsTag.java Tue Mar 6 14:19:43 2001
> @@ -237,10 +237,10 @@
>
> // Render the options tags for each element of the values
> coll.
> while (valuesIterator.hasNext()) {
> - String value = (String) valuesIterator.next();
> + String value = valuesIterator.next().toString();
> String label = value;
> if (labelsIterator.hasNext())
> - label = (String) labelsIterator.next();
> + label = (String)
> labelsIterator.next().toString();
> addOption(sb, value, label,
> selectTag.isMatched(value));
> }
>
>
>
>
>
> --
> *****************************************************
> Gordon Maclean, Software Engineer
> http://www.atd.ucar.edu/homes/maclean
> Nat'l Center for Atmospheric Research, Boulder CO USA
> *****************************************************
>