myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Kienenberger" <mkien...@gmail.com>
Subject Re: How do I set fields in an arraylist from the view
Date Tue, 12 Dec 2006 16:59:05 GMT
On 12/12/06, Charbel Abdul-Massih <cabdulmassih@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}"/>

Mime
View raw message