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