运行我的应用程序时收到以下错误:
<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>
我正在尝试将数组中的元素返回到 View ,其中“theImage”是person类中的数组。
最佳答案
<f:ajax>
标签只能直接嵌套在实现 UIComponent
接口(interface)的 ClientBehaviorHolder
中。 <ui:repeat>
不是其中之一。
单击javadoc链接,它显示以下内容:
从您的问题尚不清楚您的意图是什么,因此除了在这种情况下建议摆脱<f:ajax>
之外,我无法提供更具体的答案。它不属于那里。也许您打算将其直接放在 <h:commandButton>
(类型为 HtmlCommandButton
)内,但是随后您需要更改change
事件,因为它对<input type="submit">
生成的<h:commandButton>
没有意义。
我认为您也想将<ui:repeat>
从<h:commandButton>
中移出,因为这样做也没有多大意义。将其放在<h:commandButton>
旁边,而不是嵌套在其中。