L'attribut de liaison provoque l'ID de composant en double trouvé dans la vue
Voici JSF code:
<h:inputText binding="#{bean.input}" />
Et voici une partie de la sauvegarde de haricot pour la prise en charge de liaison:
private HtmlInputText input;
public void setInput(HtmlInputText input) {
this.input = input;
}
public HtmlInputText getInput() {
return this.input;
}
Quand j'ouvre la page à la première fois, tout fonctionne bien mais quand je l'ouvre au deuxième temps (rafraîchissement ou d'ouvrir l'url dans un autre onglet ou de toute autre manière), je reçois en double erreur d'ID. Message d'erreur dit que <h:inputText>
n'a pas d'ID unique. Voici une partie de long message d'erreur:
java.lang.IllegalArgumentException: Component ID formId:inputId has already been found in the view
+id: inputId type: javax.faces.component.html.HtmlInputText@cafebabe
Le problème s'est produit après que j'ai ajouté binding
attribut. Si je le supprime, tout fonctionne bien à nouveau. Comment puis-je utiliser correctement binding
attribut?
source d'informationauteur Roman
Vous devez vous connecter pour publier un commentaire.
Double composante ID erreurs peuvent se produire lorsque:
NamingContainer
.<f:subview>
est déclaré dans l'include de la page au lieu de la page parent.NamingContainer
.Ici,
NamingContainer
est, entre autres, les<h:form>
<h:dataTable>
et<f:subview>
.Lors de l'utilisation de
binding
vous devez le lier à une propriété qui est utilisée exclusivement par le composant en question en fonction des demandes. De votre cas particulier, indique que cette liaison est partagé par plusieurs composants, peut-être à travers différentes demandes. Lorsque vous liez le composant à une propriété d'un backing bean, puis la sauvegarde de haricots ne doivent absolument pas être dans une portée plus large que la demande portée. Voir aussi JSF 2.0 specitication chapitre 3.1.5 (l'emphase est mienne):Voir aussi:
J'ai eu le même problème jusqu'à ce qu'trouvé cette balise que evit le double de l'id de composant