PrimeFaces bouton de commande n'a pas de formulaire de mise à jour sur soumettre
C'est mon Exemple de la sauvegarde de haricot.
@ManagedBean
@SessionScoped
public class Sample {
private String dateText;
public Sample(){
dateText = (new Date()).toString();
}
public String updateDate(){
setDateText((new Date()).toString());
return null;
}
public String getDateText() {
return dateText;
}
public void setDateText(String dateText) {
this.dateText = dateText;
}
}
Scénario 01
<h:head></h:head>
<h:body>
<h:form>
<h:inputText id="txtFirst" value="#{sample.dateText}"/>
<h:inputText id="txtSecond" value="#{sample.dateText}"/>
<h:commandButton action="#{sample.updateDate}"/>
</h:form>
</h:body>
Scénario 02
<h:head></h:head>
<h:body>
<h:form>
<h:inputText id="txtFirst" value="#{sample.dateText}"/>
<p:inputText id="txtSecond" value="#{sample.dateText}"/>
<h:commandButton action="#{sample.updateDate}"/>
</h:form>
</h:body>
Scénario 03
<h:head></h:head>
<h:body>
<h:form>
<h:inputText id="txtFirst" value="#{sample.dateText}"/>
<p:inputText id="txtSecond" value="#{sample.dateText}"/>
<p:commandButton action="#{sample.updateDate}"/>
</h:form>
</h:body>
Scénario 04
<h:head></h:head>
<h:body>
<h:form>
<h:inputText id="txtFirst" value="#{sample.dateText}"/>
<p:inputText id="txtSecond" value="#{sample.dateText}"/>
<p:commandButton action="#{sample.updateDate}" update="@form"/>
</h:form>
</h:body>
Quand je clique sur le commandButton
,
Scénario 01 : Fonctionne très bien. Je peux voir de nouvelles valeurs à la date à partir de deux inputText
les champs sans actualiser manuellement la page.
Scénario 02 : Il actualise la page. De ne voir aucun ajax comportement. De nouvelles valeurs sont là.
Scénario 03 : Rien ne se passe. Pas de rafraîchissement. Pas de modifications de la valeur. Pour voir les valeurs que j'ai actualiser la page manuellement.
Scénario 04 : Fonctionne comme Scénario 01
Il vous plaît quelqu'un me donner une petite explication sur ce qui se passe ici avec ces composants.
J'ai utilisé ICEfaces
, mais je n'ai pas vu quelque chose comme ça.
Merci!
Vous devez vous connecter pour publier un commentaire.
IceFaces sont en mesure de déterminer les éléments qui doivent être actualisée lors de l'ajax d'action est invoquée. Avec la norme ACI + Primefaces vous n'obtenez pas une telle automatisation de sorte que vous devez spécifier l'exécuté et mis à jour les composants vous-même.
p:commandButton
qui onlt exécute l'action, mais ne rend pas les autres, donc vous ne voyez que les modifications après une actualisationDe sorte que le comportement n'est pas "étrange" 🙂
<p: />
composants ne fonctionnent pas comme<h: />
ou<ice: />
par défaut?render="@form"
. PrimeFaces ne touche pas à la norme ACI commande des composants. Voir aussi icesoft.org/wiki/display/ICE/Disabling+Ajax