Dans le code ci-dessous, l'action JSF HTML Commandbutton est appelée parfaitement. Mais l'action de Commandbutton PremièreFaces n'est pas appelée.
import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean @SessionScoped public class EditableHTMLText implements Serializable{ /** * */ private static final long serialVersionUID = 8439126615761864409L; private String value = "Test<br>of<br>HTML<br>text<br><b>ITEM</b><br>"; private boolean editing = false; public void toogleEditing(){ this.setEditing(!this.isEditing()); System.out.println("Editing State: " + this.editing); } public String getValue(){ return value; } public void setValue(String value){ this.value = value; } public boolean isEditing(){ return editing; } public void setEditing(boolean editing){ this.editing = editing; } }
8 Réponses :
Lorsque vous avez utilisé le composant composite, était-il déjà placé dans une balise H: formulaire? Lorsque vous avez des formulaires imbriqués, l'action de bouton de commande n'est pas déclenchée. P>
Un autre problème peut être les parties AJAX que vous essayez. Le bouton PremierFaces a l'attribut de mise à jour, mais le JSF standard n'a pas cela. Il fera toujours un rafraîchissement complet de la page (sauf lorsqu'il est imbriqué dans ou F: Ajax Tag est utilisé à l'intérieur) P>
Vous pouvez essayer d'insérer AJAX = "FALSE" Attribut dans P: Commandbutton. P>
J'ai également appuyé sur ce problème et j'ai testé vos codes, il semble que les principaux favoris ne parviennent pas à avertir des erreurs de validation dans le même "xhtml", mais dans d'autres panelgrids, vous aurez peut-être besoin d'un parent PanelGrid pour encapsuler correctement tous les grilles de votre formulaire. p>
Si vous remplissez complètement votre formulaire complet, vous verrez que votre action de commande PremierFaces est appelée, sinon elle «digère» silencieusement les erreurs de validation que vous pouvez avoir. P>
J'ai également eu des problèmes avec des commandes de commande non déclenchantes. Dans mes cas, Ajax et Non-Ajax Reqissests n'ont pas fonctionné. 1. Comme décrit ci-dessus - assurez-vous de supprimer toutes les formulaires de formulaire. Facile fait avec une utilisation composite. 2. Si vous avez plusieurs boutons, essayez d'utiliser le drapeau "processus". Aidé dans mon cas.
<p:commandButton id="submitButton" value="Submit" type="submit" actionListener="#{bean.save}" update="message" process="txtComment, @this" icon="ui-icon-disk"/>
Aujourd'hui, j'ai frappé ce même problème avec Premefaces 5.1. Dans mon cas, je n'avais aucune forme imbriquée et je définissais déjà l'attribut La "solution" était d'ajouter sans En débogage de l'application, j'ai vu que les phases de validation et de mise à jour ont été correctement exécutées, mais dans la phase d'application d'invocation, aucun événement en file d'attente n'était présent et aucune action n'a été effectuée. En fait, je pourrais spécifier tout ce que j'ai aimé à l'intérieur du Celles-ci, au lieu de cela, fonctionnent comme ils le devraient, mais vous n'avez pas de traitement partiel en place, ils peuvent donc ne pas être une solution viable: P>
Ce doit être un bug de primesFaces. p> processus code> sur le
p: Commandbutton code> avec les éléments de formulaire que je voulais être traité. Cependant cela n'a pas encore fonctionné. P>
@This code> dans la liste des composants à traiter, comme celui-ci: p>
@Chis code> (qui n'est généralement pas nécessaire, car le bouton lui-même ne doit pas nécessairement être traité / validé), je n'ai trouvé aucun moyen de faire de ces pour travailler à l'intérieur d'un composite: < / p>
action code> et
ActionListener CODE> Attribute de
Le bouton n'est pas tiré, s'il n'est pas traité. Ca a du sens.
Comme l'attribut "Process" n'indique pas que les champs Autres i> doivent être traités / soumis. Le réglage "@Chis" dans l'attribut de processus n'est pas requis pour les boutons situés en dehors d'un composite. Et, si c'était le cas, ce serait au moins "redondant".
J'aimerais pouvoir uppouver cela plus d'une fois. C'est la bonne réponse, ou devrais-je dire @Chis. Même en 2018 sous PremeFaces 6. Jamais eu un problème avec P: le tir de Commandbutton jusqu'à ce que je fixe un sur un composite.
Cela fonctionne vraiment avec les visages de printemps 2.3.1 - Merci beaucoup!
Pour ajouter aux réponses ci-dessus, pour la complétude.
L'un des problèmes non couverts dans les réponses ci-dessus est l'attribut de la DOCS de JSF p> Attribut d'objectifs: strong> Si cet élément a une méthode - Signature
attribut, la valeur de l'attribut cible doit être interprétée en tant que
Espace (non onglet) Liste séparée des ID clients (par rapport au sommet
composant de niveau) des composants dans le
@source: https://stackoverflow.com/a/19680483/ 1850844 p> p> manquant code> dans
composite: interface code> p>
J'ai trouvé une solution de contournement pour ce problème à l'intérieur de votre mainpage définir avec J'ai fait un appel GMAP avec ceci à partir d'un composant composé à mon empiègement p> p>
Vous avez probablement des éléments de votre page, com requis = "vrai" est conflictuel p>