a4j:poll doesn't rerender element
jonis Aug 14, 2007 8:26 AMI'm trying to use the a4j:poll tag to update a section of a page. The ajax response contains the updated information(seen by using a4j:log) but the section isn't updated on the page.
page;
<a4j:log /> <a4j:region id="dynamicRegion"> <div id="dynamicData" class="infoBox"> <div class="header"><span>#{messages['dynamicData']}</span></div> <s:fragment rendered="#{trip.dynamicVesselData ne null}"> <div class="pack"> <div class="label">#{messages['informationAge']}:</div> <div class="text">#{tripAction.informationAge}</div> </div> <div class="pack"> <div class="label">#{messages['longitude']}:</div> <div class="text">#{tripAction.longitude}</div> </div> <div class="pack"> <div class="label">#{messages['latitude']}:</div> <div class="text">#{tripAction.latitude}</div> </div> <div class="pack"> <div class="label">#{messages['sog']}:</div> <div class="text">#{trip.dynamicVesselData.speedOverGround}</div> </div> <div class="pack"> <div class="label">#{messages['cog']}:</div> <div class="text">#{trip.dynamicVesselData.courseOverGround}</div> </div> <div class="pack"> <div class="label">#{messages['rot']}:</div> <div class="text">#{trip.dynamicVesselData.rateOfTurn}</div> </div> <div class="pack"> <div class="label">#{messages['navigationalStatus']}:</div> <div class="text">#{trip.dynamicVesselData.navigationalStatus}</div> </div> </s:fragment></div> </a4j:region> <h:form> <a4j:region> <a4j:poll id="poll" action="#{tripAction.updateTrip}" interval="10000" reRender="dynamicRegion,:dynamicData" enabled="true" /> </a4j:region> </h:form>
response before updated information;
<?xml version="1.0"?> <html xmlns="http://www.w3.org/1999/xhtml"><head><title></title><script type="text/javascript" src=" /project/a4j.res/org.ajax4jsf.framework.ajax.AjaxScript"> </script></head><body><div id="dynamicData" class="infoBox"><div class="header"><span>Dynamic trip information </span></div></div><span style="display:none;" id="j_id23:poll"><script type="text/javascript">//<![CDATA [ A4J.AJAX.Poll('_viewRoot','j_id23',{'pollId':'j_id23:poll','parameters':{'j_id23:poll':'j_id23:poll' } ,'pollinterval':10000,'actionUrl':'/project/main.seam'} ); //]]> </script></span><meta name="Ajax-Update-Ids" content="dynamicRegion,j_id23:poll" /><span id="ajax-update-ids" ><input type="hidden" name="jsf_sequence" value="1" /><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id3:j_id5" /></span><meta id="Ajax-Response" name="Ajax-Response" content="true" /></body></html>
response after updated information;
<?xml version="1.0"?> <html xmlns="http://www.w3.org/1999/xhtml"><head><title></title><script type="text/javascript" src=" /project/a4j.res/org.ajax4jsf.framework.ajax.AjaxScript"> </script></head><body><div id="dynamicData" class="infoBox"><div class="header"><span>Dynamic trip information </span></div><div class="pack"><div class="label">Age of information:</div><div class="text">51257minutes </div></div><div class="pack"><div class="label">Longitude:</div><div class="text">4.16</div></div><div class="pack"><div class="label">Latitude:</div><div class="text">52.0</div></div><div class="pack"> <div class="label">Speed over ground:</div><div class="text">1.0</div></div><div class="pack"><div class ="label">Course over ground:</div><div class="text">1.0</div></div><div class="pack"><div class="label" >Turning with a rate of:</div><div class="text">1.0</div></div><div class="pack"><div class="label">Navigational status:</div><div class="text">UNDERWAY_SAILING</div></div></div><span style="display:none;" id="j_id23 :poll"><script type="text/javascript">//<![CDATA[ A4J.AJAX.Poll('_viewRoot','j_id23',{'pollId':'j_id23:poll','parameters':{'j_id23:poll':'j_id23:poll' } ,'pollinterval':10000,'actionUrl':'/project/main.seam'} ); //]]> </script></span><meta name="Ajax-Update-Ids" content="dynamicRegion,j_id23:poll" /><span id="ajax-update-ids" ><input type="hidden" name="jsf_sequence" value="1" /><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id3:j_id17" /></span><meta id="Ajax-Response" name="Ajax-Response" content="true" /></body></html>
which seams to be correct...
a4j:log;
debug[14:17:57,348]: NEW AJAX REQUEST !!! with form :j_id23 debug[14:17:57,348]: Append hidden control j_id23 with value [j_id23] and value attribute [j_id23] debug[14:17:57,348]: Append hidden control javax.faces.ViewState with value [j_id3:j_id20] and value attribute [j_id3:j_id20] debug[14:17:57,348]: parameter j_id23:poll with value j_id23:poll debug[14:17:57,348]: Start XmlHttpRequest debug[14:17:57,348]: Reqest state : 1 debug[14:17:57,348]: QueryString: AJAXREQUEST=_viewRoot&j_id23=j_id23&javax.faces.ViewState=j_id3%3Aj_id20&j_id23%3Apoll=j_id23%3Apoll& debug[14:17:57,363]: Reqest state : 1 debug[14:17:58,176]: Reqest state : 2 debug[14:17:58,191]: Reqest state : 3 debug[14:17:58,191]: Reqest state : 4 debug[14:17:58,191]: Reqest end with state 4 debug[14:17:58,191]: Response with content-type: text/xml;charset=UTF-8 debug[14:17:58,191]: Full response content: .....see code section above.... debug[14:17:58,191]: Update page by list of rendered areas from response dynamicRegion,j_id23:poll debug[14:17:58,191]: search for elements by name 'script' in element #document debug[14:17:58,191]: getElementsByTagName found 2 debug[14:17:58,191]: <script> in response with src=/project/a4j.res/org.ajax4jsf.framework.ajax.AjaxScript debug[14:17:58,191]: Such element exist in document debug[14:17:58,191]: search for elements by name 'link' in element #document debug[14:17:58,207]: getElementsByTagName found 0 debug[14:17:58,207]: Attempt to update part of page for Id: dynamicRegion debug[14:17:58,207]: call getElementById for id= dynamicRegion error[14:17:58,207]: New node for ID dynamicRegion is not present in response debug[14:17:58,207]: Attempt to update part of page for Id: j_id23:poll debug[14:17:58,207]: call getElementById for id= j_id23:poll debug[14:17:58,207]: Replace content of node by replaceChild() debug[14:17:58,207]: search for elements by name 'script' in element span debug[14:17:58,223]: getElementsByTagName found 1 debug[14:17:58,223]: Scripts in updated part count : 1 debug[14:17:58,223]: Update part of page for Id: j_id23:poll successful debug[14:17:58,223]: call getElementById for id= ajax-update-ids debug[14:17:58,223]: Hidden JSF state fields: [object HTMLSpanElement] debug[14:17:58,223]: Namespace for hidden view-state input fields is undefined debug[14:17:58,223]: search for elements by name 'input' in element span debug[14:17:58,223]: getElementsByTagName found 2 debug[14:17:58,223]: Replace value for inputs: 14 by new values: 2 debug[14:17:58,223]: Input in response: jsf_sequence debug[14:17:58,238]: Input in response: javax.faces.ViewState debug[14:17:58,238]: Found same input on page with type: hidden debug[14:17:58,238]: Found same input on page with type: hidden debug[14:17:58,238]: Found same input on page with type: hidden debug[14:17:58,238]: Found same input on page with type: hidden debug[14:17:58,238]: Found same input on page with type: hidden debug[14:17:58,238]: Found same input on page with type: hidden debug[14:17:58,238]: search for elements by name 'INPUT' in element span debug[14:17:58,238]: getElementsByTagName found 0 debug[14:17:58,238]: Replace value for inputs: 14 by new values: 0 debug[14:17:58,254]: call getElementById for id= _A4J.AJAX.focus debug[14:17:58,254]: No focus information in response debug[14:17:58,301]: Evaluate script replaced area in document: // A4J.AJAX.Poll('_viewRoot','j_id23',{'pollId':'j_id23:poll','parameters':{'j_id23:poll':'j_id23:poll'} ,'pollinterval':10000,'actionUrl':'/project/main.seam'} ); //
Any ideas of what I'm doing wrong?
using ajax4jsf-1.1.2-20070813.000131-165.jar