Вы можете использовать функцию fn:split()
для этого:
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
...
#{fn:split(cc.clientId, ':')[0]}
Другой способ - использовать UIComponent#getNamingContainer()
на UIComponent#getParent()
:
#{cc.parent.namingContainer.parent.namingContainer.clientId}
В зависимости от конкретных функциональных требований и имеющегося у вас кода могут быть лучшие способы, которые отсутствуют в вашем вопросе.Например, если Id1
фактически ссылается на <h:form>
, тогда вы можете использовать render="@form"
вместо <f:ajax>
.
Кстати, Id1:Id2:Id3
называется просто идентификатором клиента (как высм. в сгенерированном выводе HTML).Часть Id1
на самом деле является идентификатором компонента (как вы видите в исходном коде JSF).Предварительное добавление NamingContainer
идентификаторов в идентификаторе клиента, как в Id1:Id2:Id3
, также иногда называют лесным чулком.