reRendered links broken due to replacing & with & #38;
matt.drees Sep 9, 2008 12:45 AMHi,
I have a seam-facelets-richfaces app that works great in Firefox and IE. However, there is one section that has a table with links that is re-rendered by a4j, and Safari doesn't like the links that are re-rendered. The links that are rendered in the initial page rendering are fine, but when the table is re-rendered by a4j, the links are unusable. Initially, the links are rendered like this:
<a href="/crs/admin/editHome.seam?conversationPropagation=begin&conferenceId=9&cid=19" id="conference_listing:3:manageLink">Manage</a>
However, after an a4j re-render, the links look like this:
<a href="/crs/admin/editHome.seam?conversationPropagation=begin& #38;conferenceId=13& #38;cid=20" id="conference_listing:3:manageLink">Manage</a>
(Note: I've manually added a space in between "&" and "#38;" for this forum; otherwise the forum will show "&" instead of spelling it out, even though it's in a code block)
The & entity reference has been replaced by the & #38; numeric character reference. For some reason, Safari doesn't like this, and if I click on the link, the second two parameters (conferenceId and cid) are lost.
From a4j:log, I can tell the server is sending back links with & in ajax responses, so I suspect this is a client-side a4j javascript issue.
Is this an a4j bug? If not, is there a way I can prevent a4j from converting & references into & #38; references?
Also, Google Chrome breaks same way Safari does, but Firefox 3 and IE are fine (they both render the link with & instead of & #38;).
Thanks!
I've pasted the xhtml snippet below.
I'm using richfaces 3.2.1GA
<a:outputPanel id="conferenceSearchResults" ajaxRendered="true">
 <s:div id="conference_search_results_div"
 rendered="true">
 <h2>Conference Listing</h2>
 <h:outputText value="No Conferences Found" rendered="#{empty conferenceSearching.resultList}"/>
 <h:dataTable id="conference_listing" value="#{conferenceSearching.resultList}"
 styleClass="segmented"
 var="conf" rendered="#{not empty conferenceSearching.resultList}">
 <h:column id="conference_name">
 #{conf.name}
 </h:column>
 <h:column id="conference_begin_date">
 <h:outputText value="#{conf.beginDate}">
 <s:convertDateTime type="date" dateStyle="short"/>
 </h:outputText>
 </h:column>
 <h:column id="conference_edit">
 <s:link id="manageLink"
 value="Manage"
 view="/admin/editHome.xhtml">
 <f:param name="conversationPropagation"
 value="begin"/>
 <f:param name="conferenceId"
 value="#{conf.id}"/>
 </s:link>
 </h:column>
 </h:dataTable>
 <s:link value="More results" action="#{conferenceSearching.next}" rendered="#{conferenceSearching.nextExists}"/>
 </s:div>
</a:outputPanel>
 
     
    