--Environnement - CentOS Linux release 7.8.2003 (Core) - Eclipse IDE for Enterprise Java Developers.Version: 2020-03 (4.15.0) - openjdk version "11.0.7" 2020-04-14 LTS - JSF 2.3.9
Erreur de la console Eclipse
javax.faces.view.facelets.TagException: /base.xhtml @18,103 <f:ajax> Unable to attach <f:ajax> to non-ClientBehaviorHolder parent
at com.sun.faces.facelets.tag.jsf.core.AjaxHandler.applyNested(AjaxHandler.java:276)
at com.sun.faces.facelets.tag.jsf.core.AjaxHandler.apply(AjaxHandler.java:148)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:179)
...réduction...
base.xhtml
...réduction...
<h:inputHidden id="file">
<f:ajax event="change" execute="@form" render="@form" listener="#{uploadBean.uploadFile}" />
</h:inputHidden>
...réduction...
Register an AjaxBehavior instance on one or more UIComponents implementing the ClientBehaviorHolder interface. ajax(JSF 2.2 View Declaration Language: Facelets Variant)
Enregistrez une instance AjaxBehavior avec un ou plusieurs UIComponents qui implémentent l'interface ClientBehaviorHolder.
Dans ce cas, la question est de savoir si h: inputHidden
implémente l'interface ClientBehaviorHolder, mais quand j'ai regardé le JavaDoc pour ClientBehaviorHolder
, il était hors de portée ...
All Known Implementing Classes: HtmlBody, HtmlCommandButton, HtmlCommandLink, HtmlDataTable, HtmlForm, HtmlGraphicImage, HtmlInputFile, HtmlInputSecret, HtmlInputText, HtmlInputTextarea, HtmlOutcomeTargetButton, HtmlOutcomeTargetLink, HtmlOutputLabel, HtmlOutputLink, HtmlPanelGrid, HtmlPanelGroup, HtmlSelectBooleanCheckbox, HtmlSelectManyCheckbox, HtmlSelectManyListbox, HtmlSelectManyMenu, HtmlSelectOneListbox, HtmlSelectOneMenu, HtmlSelectOneRadio ClientBehaviorHolder (JavaServer Faces API (2.2))
...réduction...
<h:inputText id="file" style="display:none;">
<f:ajax event="change" execute="@form" render="@form" listener="#{uploadBean.uploadFile}" />
</h:inputText>
...réduction...