Невозможно прикрепить к родительскому элементу, отличному от ClientBehaviorHolder

Я получаю следующую ошибку при запуске моего приложения:

<f:ajax> Unable to attach <f:ajax> to non-ClientBehaviorHolder parent

Мой JSF:

    <h:commandButton id="submitschool" action="submit" value="Get templates" style="FONT-SIZE: medium;FONT-FAMILY: 'Rockwell';width : 128px; height : 24px;">
    <ui:repeat value="#{person.theImage}" var="item">
    <f:ajax event="change" render="image" />
    <h:graphicImage id="image" value="#{item}"/>
    </ui:repeat>
    </h:commandButton>

Я пытаюсь вернуть обратно элементы в массиве в представление, где «theImage» - это массив в классе person.

13
задан leppie 22 August 2010 в 06:54
поделиться

1 ответ

Тег может быть непосредственно вложен только в UIComponent который реализует ClientBehaviorHolder интерфейс. не является одним из них.

Нажмите на ссылку javadoc, она сообщает следующее:

Все известные реализующие классы:

HtmlBody, HtmlCommandButton, HtmlCommandLink, HtmlDataTable, HtmlForm, HtmlGraphicImage, HtmlInputSecret, HtmlInputText, HtmlInputTextarea, HtmlOutcomeTargetButton, HtmlOutcomeTargetLink, HtmlOutputLabel, HtmlOutputLink, HtmlPanelGrid, HtmlSelectBooleanCheckbox, HtmlSelectManyCheckbox, HtmlSelectManyListbox, HtmlSelectManyMenu, HtmlSelectOneListbox, HtmlSelectOneMenu, HtmlSelectOneRadio

Из вашего вопроса не ясно, каковы ваши намерения, поэтому я не могу дать более конкретный ответ, чем рекомендация избавиться от в данном контексте. Ему там не место. Возможно, вы хотели поместить его непосредственно внутрь (который имеет тип HtmlCommandButton), но тогда вам нужно изменить событие change, поскольку оно не будет иметь смысла на , генерируемом .

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

17
ответ дан 1 December 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: