Uploaded image for project: 'MyFaces Core'
  1. MyFaces Core
  2. MYFACES-1834

suffix added to component id when including files

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.2.2
    • 1.2.9
    • JSR-252
    • None

    Description

      In core 1.2 to 1.2.2, any use of jsp:include causes the ids of components in the included file to have a random string appended to them.

      This results in some ugly ids. However more significantly, the id of a component is not predictable even when an id attribute is explicitly assigned.

      In addition, this breaks the tomahawk forceId feature, because although the namespace prefix is omitted the rest of the id changes making "forceId" useless.

      The cause is class UIComponentClassicTagBase, where checkIfItIsInAnIterator() returns true if the current component is in an included or forwarded page. Later, the createUniqueId method adds a suffix to the user-specified if member isInAnIterator is true.

      Unfortunately, documentation on why things are implemented as they are is lacking.

      Checking for iteration is needed to support
      <c:forEach ..>
      <h:inputText id="name"/>
      </c:forEach>

      Checking for includedOrForwarded might be to allow:
      <jsp:include page="subPage.jsp" />
      <jsp:include page="subPage.jsp" />

      However this is a very rare usage; support for this should not hurt everyone.

      And Sun Mojarra does not mess with the ids like this...testing shows
      that the ids of components are the same regardless of whether they are
      inline or in an included file.

      Maybe the "isInIterator" check could look to see whether the same file is being included twice, eg by keeping a list of the files included so far, and returning true only if the same string is encountered twice? That would allow multiple inclusions, but not mess with ids for a single inclusion.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            lu4242 Leonardo Uribe
            skitching Simon Kitching
            Votes:
            6 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment