code: protected String getFacesJspId() {
          if (null == facesJspId) {
              if (null != jspId) {
                  facesJspId = UNIQUE_ID_PREFIX + jspId;
                  // if this tag happens to be nested within <c:forEach>,
                  //  jspId will be the same for each iteration. So it is
                  // transformed into a unique "id" by appending a counter which
                  // gets stored in request scope with jspId as the key for use
                  // during the next iteration.
                  if (isDuplicateId(facesJspId)) {
                      facesJspId = generateIncrementedId(facesJspId);
                  }
              } else {
                  // jspId will be null if we're running in a container
                  // that doesn't support JspIdConsumer
                  facesJspId = getFacesContext().getViewRoot().createUniqueId();
              }
          }
          return facesJspId;
      }
docs: <p>If this method has been called before on this tag's useful
  lifetime (before {@link #release} was called), return the
  previously returned value.  Otherwise, if {@link #getJspId}
  returns non-<code>null</code>, prepend {@link #UNIQUE_ID_PREFIX}
  to the <code>jspId</code> and return the result.</p>