<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
On 5/12/09 10:11 AM, Andy Schwartz wrote:
<blockquote cite="mid:4A09ADCC.8040506@oracle.com" type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
Hi David -<br>
<br>
David Geary wrote On 5/12/2009 12:36 PM ET:
<blockquote
cite="mid:75fa9e650905120936p114faae7g987969d2e0b7ce1d@mail.gmail.com"
type="cite"><br>
<h:selectOneMenu id="menu"<br>
value="#{place.zoomIndex}"<br>
valueChangeListener="#{place.zoomChanged}"<br>
style="font-size:13px;font-family:Palatino"><br>
<br>
<f:selectItems value="#{places.zoomLevelItems}"/><br>
<b><f:ajax execute="@this" render="image"/><br>
</b> <br>
</h:selectOneMenu><br>
</blockquote>
<br>
This looks good to me.<br>
<blockquote
cite="mid:75fa9e650905120936p114faae7g987969d2e0b7ce1d@mail.gmail.com"
type="cite"><br>
With FireBug, I've verified that a POST request is indeed executed when
I change the zoom level, and it appears that everything is in order:<br>
<br>
form form<br>
j_id-939329235_16ef8569:0:j_id-939329235_16ef8513:j_id1608935764_5fe6690f:menu
3<br>
javax.faces.ViewState -1363564553004911965:-1863826268811277742<br>
javax.faces.behavior.event valueChange<br>
javax.faces.partial.ajax true<br>
javax.faces.partial.event change<br>
javax.faces.partial.execute
j_id-939329235_16ef8569:0:j_id-939329235_16ef8513:j_id1608935764_5fe6690f:menu<br>
javax.faces.partial.render
j_id-939329235_16ef8569:0:j_id-939329235_16ef8513:j_id1608935764_5fe6690f:image<br>
javax.faces.source
j_id-939329235_16ef8569:0:j_id-939329235_16ef8513:j_id1608935764_5fe6690f:menu<br>
</blockquote>
<br>
And the request payload looks right - seems like all of the necessary
information is present. (Though, man, those auto-generated client ids
sure are huge!)<br>
<br>
<blockquote
cite="mid:75fa9e650905120936p114faae7g987969d2e0b7ce1d@mail.gmail.com"
type="cite"><br>
I get a response back that looks like this:<br>
<br>
<?xml version="1.0" encoding="utf-8"?><br>
<partial-response><changes><update
id="javax.faces.ViewState"><![CDATA[1747337848471748955:2683565346534242854<br>
]]></update></changes></partial-response><br>
<br>
However, with f:ajax, my value change listener is never invoked on the
server, so the menu doesn't update, even though I've specified that the
menu should go through the execute phase of the lifecycle. <br>
<br>
Does anyone know why my value change listener is not invoked? Am I
doing something wrong, or is this a bug?<br>
</blockquote>
<br>
Seems like the execute portion of the lifecycle is not being invoked
properly. I don't see anything wrong in your code - so I suspect there
is a bug here.<br>
<br>
</blockquote>
It looks like the problem is with UIRepeat as it doesn't override
visitTree() so when the post-back occurs, the component(s)<br>
at index 0 aren't available as no iteration has occurred.<br>
<br>
Hope to have this resolved tomorrow.<br>
</body>
</html>