----- Original Message -----
Sent: Sunday, September 25, 2005 11:30
AM
Subject: Re: commandLink not working
inside <t:dataTable>
You are right.
If you want to use request scope beans, then you
have to restore table model BEFORE action is triggered (before Apply Request Values Phase).
If there is attribute var="item" in a
dataTable tag, then you can evaluate #{item} in your action:
FacesContext.getCurrentInstance().getApplication().createValueBinding("#{item}").
JSF implementation have to initialize "item" variable for the row where
you have clicked before it call action method.
If the corresponding item does not exists
then the action will not be called.
There is issue in MyFaces: "This error condition
is not reported". If MyFaces reported (at least
in log) error or warning like "row 3 not exists in table model", you would be able to track the problem
yourself.
I suggest Saul Qunming Yuan to consider t:saveState, but to save
only minimal values he need to restore a model (like master
primary key), not model itself. t:saveState is like a hidden filed,
but applied earlier.
Also suggest to use session beans sometimes. It
is trickily to develop in JSF only with request beans.
Nebojsa
----- Original Message -----
Sent: Sunday, September 25, 2005 5:25
PM
Subject: Re: commandLink not working
inside <t:dataTable>
CommandLinks are not supposed to work in DataTables with
their beans in pure request scope, AFAIK.
You either have to
*
put the bean in session scope,
* carry around the bean, using
t:saveState,
* set preserveDataModel to true or
* make the getter to
the list you present in the table have direct access to your data source.
Otherwise, the datatable can't find it's data in the Apply Request
Values Phase and no event is queued.
Can anyone correct me, if my
understanding is wrong, please?
Saul Qunming Yuan wrote:
I have been using the request scope all the time. I don't want to use
session scope.
-----
Original Message -----
Sent:
Sunday, September 25, 2005 9:59 AM
Subject:
Re: commandLink not working inside <t:dataTable>
Did you move your CampusSearchBean from session to
request scope in the transition from 1.0.9 to 1.1.0? This gave me a lot
of headache...
Saul Qunming Yuan wrote:
To answer my own question, after adding the following line inside
<h:form>:
<t:saveState id="CampusSearchBean"
value="#{CampusSearchBean}"/>
The commandLink works again. This is on 1.0.9, I didn't try on
1.1.0. I'm still confused though, I didn't have the above code, but
commandLink worked as well before I started the upgrading thing.
-----
Original Message -----
Sent:
Saturday, September 24, 2005 10:09 AM
Subject:
commandLink not working inside <t:dataTable>
Hi,
I ran into a strange problem with the commandLink inside
<t:dataTable>. It doesn't go to the method in the backing bean
when the link is clicked. This had been working well a week ago when
my app was on 1.0.9 version. But I run into all kinds of problems
including this one ever since I upgraded to 1.1.0. Now I
decided to roll back my app to 1.0.9 version. What's strange
now, not ALL commandLink links work inside
<t:dataTable>, it works in some pages, but it doesn't in
some other pages. This is really frustrating. Any ideas,
folks?
thanks,
Saul