h:messages n'affiche pas les messages lorsque p:commandButton est pressé
J'ai un problème avec le h:messages balise JSF qui simplement ne pas afficher les messages. Dans Glassfish journal ne sont pas d'erreur quand je clique sur le bouton.
La configuration est comme suit:
test.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:j="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</h:head>
<h:body>
<h:messages globalOnly="true"/>
<h:form id="loginform">
<p:commandButton id="testButton" value="Test"
action="#{loginSessionBean.test()}" />
</h:form>
</h:body>
</html>
Avec Le SessionScopedBean:
@ManagedBean
@SessionScoped
public class LoginSessionBean implements Serializable {
private static final long serialVersionUID = 1L;
...
public String test(){
FacesContext fc = FacesContext.getCurrentInstance();
fc.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Test!", null));
return "";
}
OriginalL'auteur hFonti | 2013-04-23
Vous devez vous connecter pour publier un commentaire.
Vous envoyez une requête ajax avec PrimeFaces
<p:commandButton>
. Les requêtes Ajax, par défaut, aucune forme de commentaires (à moins de PrimeFaces'autoUpdate="true"
est utilisé quelque part). Vous devriez être en spécifiant explicitement les parties de la vue que vous souhaitez mettre à jour en ajax réponse.Une façon est de spécifier la
update
attribut sur<p:commandButton>
à point à l'ID client de la<h:messages>
composant.Une autre façon est de le remplacer par PrimeFaces
<p:messages>
qui a unautoUpdate
de l'attribut de l'objet de mise à jour automatique sur ajax réponse.Un de complètement différent alternative est de désactiver ajax en ajoutant
ajax="false"
attribut de la touche, de cette façon synchrone publication sera effectuée ce qui se traduit par une pleine page de mise à jour, exactement comme la façon dont la norme ACI<h:commandButton>
se comporte lorsque utilisé sans<f:ajax>
.Voir aussi:
OriginalL'auteur BalusC