You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org> on 2012/12/21 17:29:14 UTC

[jira] [Commented] (MYFACES-3668) CLONE - UIForm.createUniqueId should take into account prependId logic

    [ https://issues.apache.org/jira/browse/MYFACES-3668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13538187#comment-13538187 ] 

Leonardo Uribe commented on MYFACES-3668:
-----------------------------------------

It is probably a bug, just that it is hard to see it at first view. I
can't reproduce it,
but I found the change that create the problem:

https://issues.apache.org/jira/browse/MYFACES-3373

UIForm.createUniqueId should take into account prependId logic

The problem is related to

https://issues.apache.org/jira/browse/MYFACES-3663

UIViewRoot.createUniqueId() should generate unique ids for all the
component tree.

I think in your case there should be one component programatically added by a
third party library that changes the order of the generated ids. If
the order changes,
the action is not executed the first time. I suppose if you set
prependId to true it
will work.
                
> CLONE - UIForm.createUniqueId should take into account prependId logic
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-3668
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3668
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>            Reporter: Zhao Koh
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.10, 2.1.4
>
>
> If prependId="false", the generated id should get an unique id from the parent naming container of UIForm, to ensure uniqueness on id generation.
> Reported by Zhao Koh on dev list : MyFaces 2.1.8 - Issues with composite component renderFacet
> Hi all,
> I am currently using MyFaces 2.1.8 but discovered an issue with composite component renderFacet - and this issue started at version 2.1.4.
> The following describes the problem:
> I have a composite component called buttonSelectBox that uses composite:renderFacet to inject content from client - nothing fancy, only a span that surrounds the content.
> <html xmlns="http://www.w3.org/1999/xhtml" 
>         xmlns:h="http://java.sun.com/jsf/html" 
>         xmlns:f="http://java.sun.com/jsf/core" 
>         xmlns:c="http://java.sun.com/jsp/jstl/core" 
>         xmlns:ui="http://java.sun.com/jsf/facelets" 
>         xmlns:composite="http://java.sun.com/jsf/composite" 
>         xmlns:p="http://primefaces.org/ui"> 
>         <composite:interface> 
>                 <composite:attribute name="compId" required="true" /> 
>                 <composite:attribute name="defaultText" required="true" /> 
>                 <composite:facet name="content" required="false" /> 
>         </composite:interface> 
>         <composite:implementation> 
>                 <span class="buttonlink"> 
>                         <composite:renderFacet name="content" /> 
>                   </span>                     
>         </composite:implementation> 
> </html> 
> Then I have a facelet page that uses this composite component and a standard <h:commandButton> that invokes an action.
> <!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" 
>         xmlns:h="http://java.sun.com/jsf/html" 
>         xmlns:c="http://java.sun.com/jsp/jstl/core" 
>         xmlns:f="http://java.sun.com/jsf/core" 
>         xmlns:ui="http://java.sun.com/jsf/facelets" 
>         xmlns:custom="http://java.sun.com/jsf/composite/components" 
>         xmlns:p="http://primefaces.org/ui" 
>         xmlns:pe="http://primefaces.org/ui/extensions" 
>         lang="en"> 
> <h:head> 
> </h:head> 
> <h:body> 
>         <div class="container"> 
>         
>                 <div class="row"> 
>                         <div id="workspace"> 
>                                 <h:form id="taskListForm" prependId="false"> 
>                                         <custom:buttonSelectBox compId="myLinksMenu" defaultText="2222"> 
>                                                 <f:facet name="content"> 
>                                             <ul> 
>                                                 <li><a href="#">My Preferences</a></li> 
>                                         </ul> 
>                                         <ul> 
>                                                 <li><a href="#">My Profile</a></li> 
>                                             <li><a href="#{facesContext.externalContext.requestContextPath}/logout">Logout</a></li> 
>                                         </ul> 
>                                                 </f:facet> 
>                                         </custom:buttonSelectBox> 
>                                 
>                                         <h:commandButton action="#{testBean.buttonAction}" value="Click ME" /> 
>                                 </h:form> 
>                         </div>         
>                 </div> 
>         </div> 
>         
> </h:body> 
> </html> 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira