J'ai un formulaire simple avec un inputText et 2 commandButtons. L'entréeTexte affiche la valeur du bean backing correctement, mais lorsque je change la valeur pour la première fois, la méthode set n'est pas appelée, et donc le formulaire submit avec une valeur vide. Lorsque je le change à nouveau, la méthode set est appelée et tout fonctionne correctement. Quelle est la cause et comment puis-je le résoudre?<h: inputText valeur ne pas mettre à jour
<h:panelGroup id="chatId">
<h:panelGrid rendered="#{chat.validUser == true}">
<h:form id="sendMsgForm" >
<h:panelGroup id="chatId2">
<h:inputText id="chatInput" value="#{chat.msgTo}" autocomplete="off" >
<f:ajax execute="@this @form" />
</h:inputText>
<h:commandButton value="Send" id="sendButton" action="#{chat.send}">
<f:ajax render=":chatLogId :chatId" />
</h:commandButton>
<h:commandButton value="Bye" action="#{chat.bye}">
<f:ajax render=":chatLogId :chatId :chatUserId" />
</h:commandButton>
</h:panelGroup>
</h:form>
</h:panelGrid>
</h:panelGroup>
Le support code haricot:
@SessionScoped
public class Chat implements Serializable, ActionListener, ValueChangeListener {
private String msgTo = "Start typing...";
private boolean validUser = false;
public void bye() {
validUser = false;
tc.disconnect();
}
public void send() {
try {
tc.sendMessage(msgTo);
setMsgTo("");
} catch (Exception e) {
e.printStackTrace();
}
}
// ...
Mais il change la valeur du champ d'entrée à la première et la deuxième fois. Donc, cela devrait fonctionner aux deux moments. Ou est-ce que je manque quelque chose? –
Merci pour les réponses Matt et BalusC. J'ai essayé d'avoir juste f: ajax dans le commandButton, et aussi juste l'inputText, mais le comportement est toujours le même. La première fois que j'ai modifié le champ de saisie et que j'ai appuyé sur Entrée ou que j'ai cliqué sur le bouton, le champ de saisie a été réinitialisé à la valeur par défaut «Démarrer la frappe ...». La deuxième fois que j'ai changé le champ de saisie, tout a fonctionné. C'est comme si ma contribution était directe quelque part ailleurs la première fois. Merci. Binh – Binh
Les modifications ont-elles été republiées sur le serveur? – BalusC