[richfaces-issues] [JBoss JIRA] (RF-11950) rich:findComponent does not retrieve the component for multiply-nested, dynamically generated tab components

Thomas Amrhein (JIRA) jira-events at lists.jboss.org
Tue Jul 24 02:14:09 EDT 2012


    [ https://issues.jboss.org/browse/RF-11950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12707457#comment-12707457 ] 

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,&quot;.click();return false;&quot;,
> &quot;RichFaces.ajax( \&quot;tabbedForm:TAB_CLIENT\\u002D1\\u002Drcd\\u002DcancelCreateCmd\&quot;,event,{\&quot;incId\&quot;:\&quot;1\&quot;} )&quot;);
> 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 at 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" />&#160;
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list