Ответ 1
Тег <f:ajax>
может быть непосредственно вложен в UIComponent
, который реализует интерфейс ClientBehaviorHolder
. <ui:repeat>
не является одним из них.
Нажмите ссылку javadoc, она сообщит следующее:
Все известные классы реализации:
HtmlBody, HtmlCommandButton, HtmlCommandLink, HtmlDataTable, HtmlForm, HtmlGraphicImage, HtmlInputSecret, HtmlInputText, HtmlInputTextarea, HtmlOutcomeTargetButton, HtmlOutcomeTargetLink, HtmlOutputLabel, HtmlOutputLink, HtmlPanelGrid, HtmlSelectBooleanCheckbox, HtmlSelectManyCheckbox, HtmlSelectManyListbox, HtmlSelectManyMenu, HtmlSelectOneListbox, HtmlSelectOneMenu, HtmlSelectOneRadio
Из вашего вопроса не ясно, каковы ваши намерения, поэтому я не могу дать более конкретный ответ, чем рекомендовать избавиться от <f:ajax>
в этом контексте. Это не принадлежит. Возможно, вы хотели поместить его прямо в <h:commandButton>
(который имеет тип HtmlCommandButton
), но тогда вам нужно изменить событие change
, так как это не имеет смысла в <input type="submit">
, сгенерированном <h:commandButton>
.
Я думаю, вы также хотели бы переместить <ui:repeat>
из <h:commandButton>
, так как это также не имеет большого смысла. Поместите его рядом с <h:commandButton>
, а не внутри него.