]
Mike Hanafey commented on RF-7013:
----------------------------------
Adding:
<context-param>
<param-name>com.sun.faces.preferXHTML</param-name>
<param-value>false</param-value>
</context-param>
does fix the dead ordering list problem, but I need XHTML mode to prevent other problems.
Also, when in HTML mode the AJAX update is not smooth, and in fact does not behave like an
ajax update at all because the screen clears and repaints.
I will attach a tiny maven project that generates a test case.
This test case also illustrates that the behaviour under the chrome browser is different.
With this browser the a4j:commandLinks in the left menu do not even display the specified
action. It hehaves as though the action is undefined. This does not change with HTML /
XHTML mode.
orderingList: Dead list, items cannot be selected, column headers are
correct width
-----------------------------------------------------------------------------------
Key: RF-7013
URL:
https://jira.jboss.org/jira/browse/RF-7013
Project: RichFaces
Issue Type: Bug
Components: component
Affects Versions: 3.3.0
Reporter: Mike Hanafey
Assignee: Nick Belaevski
Fix For: Future
An orderingList page invoked via an a4j:commandLink may be in a zombie state -- nothing
is selectable, and the column headers are not formatted correctly. The behaviour is
totally reproducible via the following fragment (this fragment is a left column menu
similar to the demo app):
<rich:panel styleClass="C-panelMenu"
headerClass="C-mainSideSection" bodyClass="C-mainSideBody">
<f:facet name="header">Vocabulary</f:facet>
<table class="C-stdTable" style="width:100%">
<tbody>
<tr>
<td><h:graphicImage
url="/images/bullet_menu-16x16.gif"/></td>
<td
class="#{MainToolBar.ipAdminMenu.countryCodeEditorStyle}">
<a4j:commandLink id="cce" value="Country
Codes" reRender="C-main,C-menu" styleClass="C-menuLink"
action="#{MainToolBar.ipAdminMenu.actionCountryCodeEditor}" />
</td>
</tr>
<tr>
<td><h:graphicImage
url="/images/bullet_menu-16x16.gif"/></td>
<td
class="#{MainToolBar.ipAdminMenu.countryCodeEditorStyle}">
<h:commandLink id="cce2" value="Country
Codes 2" styleClass="C-menuLink"
action="#{MainToolBar.ipAdminMenu.actionCountryCodeEditor}" />
</td>
</tr>
</tbody>
</table>
</rich:panel>
The orderingList is just standard:
<h:form id="sectionForm">
<rich:orderingList id="listOrder"
value="#{CountryCodeEditor.vocabulary}" listHeight="600"
listWidth="500" var="x"
converter="#{CountryCodeEditor.vocabWordConverter}"
selection="#{CountryCodeEditor.selected}">
<rich:column width="64">
<f:facet name="header">
<h:outputText value="Code"/>
</f:facet>
<h:outputText value="#{x.word}"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Country Name"/>
</f:facet>
<h:outputText value="#{x.phrase}"/>
</rich:column>
<a4j:support event="onclick"/>
</rich:orderingList>
</h:form>
The only difference is a4j:commandLink vs. h:commandLink, the latter works, the former
does not.
The a4j link produces a fully populated list but the column headers are not the same size
as the columns, and no items can be selected. The h link works just as expected.
The ajax log follows:
debug[11:01:34,896]: Have Event [object Object] with properties: target:
http://localhost:9090/lt/ip/admin/countryCodeEditor.jsf#, srcElement: undefined, type:
click
debug[11:01:34,897]: Query preparation for form 'ipAdmin' requested
debug[11:01:34,898]: Append hidden control ipAdmin with value [ipAdmin] and value
attribute [ipAdmin]
debug[11:01:34,898]: Append hidden control javax.faces.ViewState with value [j_id7] and
value attribute [j_id7]
debug[11:01:34,898]: parameter ipAdmin:cce with value ipAdmin:cce
debug[11:01:34,898]: Look up queue with default name
debug[11:01:34,899]: NEW AJAX REQUEST !!! with form: ipAdmin
debug[11:01:34,899]: Start XmlHttpRequest
debug[11:01:34,899]: Reqest state : 1
debug[11:01:34,900]: QueryString:
AJAXREQUEST=_viewRoot&ipAdmin=ipAdmin&javax.faces.ViewState=j_id7&ipAdmin%3Acce=ipAdmin%3Acce&
debug[11:01:34,902]: Reqest state : 1
...
debug[11:01:35,135]: Reqest state : 4
debug[11:01:35,135]: Reqest end with state 4
debug[11:01:35,135]: Response with content-type: application/xhtml+xml;charset=UTF-8
debug[11:01:35,136]: Full response content: <!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html
xmlns="http://www.w3.org/1999/xhtml" id="C-html"> <head>
<title>IP:Country Code Editor </title> <script
src="/lt/a4j/g/3_3_0.GA/org/ajax4jsf/framework.pack.js.jsf"
...
</script> </body> </html>
debug[11:01:35,138]: Header Ajax-Response not found, search in <meta>
debug[11:01:35,138]: search for elements by name 'meta' in element #document
debug[11:01:35,139]: Header Ajax-Expired not found, search in <meta>
debug[11:01:35,139]: search for elements by name 'meta' in element #document
warn[11:01:35,140]: No ajax response header
debug[11:01:35,140]: Header Location not found, search in <meta>
debug[11:01:35,140]: search for elements by name 'meta' in element #document
debug[11:01:35,144]: replace all page content with response
debug[11:01:35,199]: exception during write page content undefined
debug[11:01:35,233]: response has parsed as DOM documnet.
debug[11:01:35,246]: append new node in document
debug[11:01:35,247]: append new node in document
debug[11:01:35,355]: page content has been replaced
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: