I think this is a similar issue to that which I have previously reported
as bug MYFACES-583. Hopefully the suggested patches can get applied soon.
Peter
Richard Wallace wrote:
Ok, well what's weird is that I couldn't even do it if I set the
return type and parameter type and stuff to String[]. It was still
giving me the same problems. The only way I could get this to work is
by returning an Object[] and in the setter having the parameter be an
Object[]. But then I can just do a direct cast to a Long of elements
of that array, so it is, in fact, a Long[].
I'm chalking this up to odd conversion issues that others seem to be
reporting.
Richard Wallace wrote:
Hey all,
I'm trying to use a selectManyListbox component on a page to allow
the user to select multiple things. The SelectItems are created from
a list returned from Hibernate so the value object is of type Long.
In my backing bean I'm using the following methods:
public Long[] getSelectedItems();
public void setSelectedItems (Long[] ids);
The page comes up just fine to start with but when I try to submit it
I get conversion error. The headlines from the stack trace are:
javax.faces.el.EvaluationException: Cannot set value for expression
'#{departmentTypeHandler.selectedInstitutionTypeIds}' to a new value
of type [Ljava.lang.Object;
Caused by: javax.servlet.jsp.el.ELException: Attempt to coerce a
value of type "[Ljava.lang.Object;" to type "[Ljava.lang.Long;
I tried setting a converter on the selectManyListbox with
converter="javax.faces.Long" to try and make it convert the String[]
to a Long[]. But that didn't work at all, seemed as if the converter
didn't even get used. Is this the right approach or do I need to
create a converter for converting a String[] to a Long[]?
I know I could probably convert the value to of the SelectItems to
Strings, but I'd rather not do that unless I absolutely have to.
Seems a little hackish. What else might I try?
Thanks,
Rich
- Re: Long[] and selectManyListbox Peter Mahoney
-