You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Charbel Abdul-Massih <ca...@soundbite.com> on 2006/12/12 17:37:00 UTC
How do I set fields in an arraylist from the view
I have the following problem...
In my Backing Bean called editPhone, I have a phones property which
contains a list of PhoneNumber objects...The PhoneNumber object has a
rawValue property that is the actual phone number, and the property I'm
trying to retrieve and set...
In my JSF, I have the following code
<t:dataList value="#{editPhone.phones}" var="phone" id="phonesTable"
rowIndexVar="row">
<h:column>
<h:inputText value="#{editPhone.phones[row].rawValue}" size="10"/>
</h:column>
</t:dataList>
I am getting the right values back into my text boxes, but when I edit
the values on the screen and hit submit, they are not being saved back
into my bean. What am I doing wrong? How can I get such a scenario to
work???
Thanks,
Charbel
Re: How do I set fields in an arraylist from the view
Posted by Mike Kienenberger <mk...@gmail.com>.
On 12/12/06, Charbel Abdul-Massih <ca...@soundbite.com> wrote:
> In my Backing Bean called editPhone, I have a phones property which contains
> a list of PhoneNumber objects…The PhoneNumber object has a rawValue property
> that is the actual phone number, and the property I'm trying to retrieve and
> set…
> In my JSF, I have the following code
>
> <t:dataList value="#{editPhone.phones}" var="phone" id="phonesTable"
> rowIndexVar="row">
>
> <h:column>
> <h:inputText value="#{editPhone.phones[row].rawValue}" size="10"/>
> </h:column>
> </t:dataList>
> I am getting the right values back into my text boxes, but when I edit the
> values on the screen and hit submit, they are not being saved back into my
> bean. What am I doing wrong? How can I get such a scenario to work???
First off, you can use
<t:dataList value="#{editPhone.phones}" var="phone" id="phonesTable">
[...]
<h:inputText value="#{phone.rawValue}" size="10"/>
and dump the row index.
There's many reasons why your values might not being saved. Here's a
couple that I can think of.
1) You're hitting a validation error somewhere on your page. It may
not even be related to your phone list. Add these tags to your page:
<t:messages globalOnly="true" showDetail="true" />
<t:messages globalOnly="false" showDetail="true" />
2) The editPhone bean is request-scoped, and thus there's no list to
work from when your form is submitted. You can test for this problem
by making your bean session-scoped temporarily. My preferred fix for
this situation is to use
<t:saveState id="editPhonePhones" value="#{editPhone.phones}"/>