+1 не для того, чтобы это было самое хорошее решение, но для мысли, что это зажгло, что Вы могли использовать это в различных случаях, если действительно нет никакого способа обойти это.

я есть много пар outputLabel и inputText в PanelGrids

<h:panelGrid columns="2">
  <h:outputLabel value="label1" for="inputId1"/>
  <h:inputText id="inputId1/>

  <h:outputLabel value="label2" for="inputId2"/>
  <h:inputText id="inputId2/>

  ...
</h:panelGrid>

Я хочу иметь некоторое поведение для всех них: например, одинаковую проверку или одинаковый размер для каждого inputText. Итак, я создал составной компонент, который просто включает в себя outputLabel и и inputText

<my:editField value="field1"/>
<my:editField value="field2"/>

Но теперь, когда я помещаю их в gridPanel, они не выравниваются в зависимости от длины текста надписи. Я понимаю, почему, но я не знаю, как обойти.

Ответы на вопрос(1)

Ваш ответ на вопрос