]
Thomas Amrhein commented on RF-11950:
-------------------------------------
Jean,
does the error still occur with current Mojarra?
In our application we have the error that some render attributes do not work. Our
components are not updated. So this might be the same issue.
What helped us much was the following:
- update to current Mojarra 2.1.11 (there are a couple of great fixes with composite
components, duplicate IDs, partial state saving with dynamic generated components, etc.)
- change HTML tags to JSF tags
Hope this helps. Mojarra 2.1.11 seem to be perfect with dynamic components now. If your
error still occurs RichFaces must investigate in this.
Best regards
rich:findComponent does not retrieve the component for
multiply-nested, dynamically generated tab components
------------------------------------------------------------------------------------------------------------
Key: RF-11950
URL:
https://issues.jboss.org/browse/RF-11950
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: base functionality
Affects Versions: 4.1.0.Final
Environment: Websphere 8 - RAD 8 - JSF Mojorra 2.1.4 - Spring 3.0.6 Final -
Firefox 10.0 - Windows 7 (6.1 sp1)
Reporter: Jean ANDRE
Fix For: 4.Future
Attachments: index.xhtml, index.xhtml, listClient.xhtml, NestedWeb_RF-11950.zip,
requestClientDocument.xhtml, requestClientDocument.xhtml, tabsClient.xhtml,
tabsClient.xhtml
The rich:findComponent does not retrieve the component - What we want to achieve is to
send .click() event on a command button. We got different errors depending the tests we
made such as syntax error.
The involved code:
------------------
{code}
<!-- -->
<!-- CANCEL -->
<!-- -->
<a4j:commandButton id="#{tab.id}-rcd-cancelCreateCmd"
value="#{msg['common.command.cancel']}"
onclick="#{rich:findComponent('#{activity.id}-closeCmd')}.click();;return
false;"
render="#{tab.id}-tabsClient"
immediate="true" />
{code}
The error we got:
----------------
{code}
syntax error - [Stopper sur une erreur] - jsf.js.jsf?ln=javax.faces (ligne 1)
.click();return false;
{code}
The corresponding view source:
------------------------------
{code}
<input type="submit" value="Cancel"
onclick="jsf.util.chain(this,event,".click();return false;",
"RichFaces.ajax(
\"tabbedForm:TAB_CLIENT\\u002D1\\u002Drcd\\u002DcancelCreateCmd\",event,{\"incId\":\"1\"}
)");
return false;"
name="tabbedForm:TAB_CLIENT-1-rcd-cancelCreateCmd"
id="tabbedForm:TAB_CLIENT-1-rcd-cancelCreateCmd">
{code}
The generated javaScript under firebug:
--------------------------------------
{code}
function onclick(event) {
jsf.util.chain(this, event, ".click();return false;",
"RichFaces.ajax(\"tabbedForm:TAB_CLIENT\\u002D1\\u002Drcd\\u002DcancelCreateCmd\",event,{\"incId\":\"1\"}
)");
return false;
}
{code}
If we hard code the Id instead of the calculated one we got following error:
{code}
uncaught exception: Syntax error, unrecognized expression: TAB_CLIENT-1-TAB_RCD-closeCmd
Line 0
{code}
The generated javaScript under firebug:
--------------------------------------
{code}
function anonymous(event) {
rich:
findComponent("TAB_CLIENT-1-TAB_RCD-closeCmd").click();
return false;
}
{code}
If we use directly jQuery:
{code}
<!-- -->
<!-- CANCEL -->
<!-- -->
<a4j:commandButton id="#{tab.id}-rcd-cancelCreateCmd"
value="#{msg['common.command.cancel']}"
onclick="$('##{activity.id}-closeCmd').click();return
false;"
render="desktopTabPanel"
immediate="true" />
{code}
{code}
missing ; before statement
http://localhost:12000/crm/javax.faces.resource/jsf.js.jsf?ln=javax.faces
Line 1
{code}
If we hardcode an existing static Id, we got the error as shown the screen capture:
{code}
function onclick(event) {
jsf.util.chain(this, event,
"org.richfaces.component.UICommandButton(a)39de2ca.click();",
"RichFaces.ajax(\"tabbedForm:TAB_CLIENT\\u002D1\\u002Drcd\\u002DcancelCreateCmd\",event,{\"incId\":\"1\"}
)");
return false;
}
{code}
{code}
<a4j:commandButton id="#{tab.id}-rcd-cancelCreateCmd"
value="#{msg['common.command.cancel']}"
onclick="#{rich:findComponent('qsearchClient')}.click();"
render="#{tab.id}-tabsClient"
immediate="true" /> 
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: