Primefaces growl ne fonctionne pas dans toutes les pages
De mon site web dispose d'un modèle commun (c'est à dire xhtml file
tout en contient growl
<p:growl id="message" showDetail="true" life="3000" />
Ce modèle est davantage utilisé dans toutes les pages. J'ai remarqué que growl
travaille pour la page d'index.xhtml
, mais ne fonctionne pas dans le reste des pages. Ci-dessous l'extrait de faces-config.xml
fichier-
<navigation-rule>
<display-name>index.xhtml</display-name>
<from-view-id>/index.xhtml</from-view-id>
<navigation-case>
<from-outcome>NORMAL_USER</from-outcome>
<to-view-id>/home.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
Mais à chaque fois que j'accède à la page home.xhtml
via le lien http://localhost:8080/portal/home.xhtml
, growl
commence à travailler. Dans toutes les pages que je suis en utilisant update=":message"
de mettre à jour growl
. Qui est le coupable?
Ci-dessous est index.xhtml
<ui:composition template="/template/common/base.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:define name="center">
<h:form>
<div align="center" style="margin-top: 10%; margin-bottom: 10%;">
<p:panelGrid columns="2">
<f:facet name="header">
#{msg.HEADER}
</f:facet>
<h:outputLabel for="username" value="#{msg.USERNAME}" />
<p:inputText id="username" value="#{client.user.username}"
required="true" requiredMessage="#{msg.USERNAME_REQUIRED_MSG}" />
<h:outputLabel for="password" value="#{msg.PASSWORD} " />
<p:password id="password" value="#{client.user.password}"
required="true" requiredMessage="#{msg.PASSWORD_REQUIRED_MSG}" />
<f:facet name="footer">
<div align="right">
<p:commandButton value="#{msg.LOGIN_BUTTON}" icon="ui-icon-check"
update=":message" action="#{client.login}" />
</div>
</f:facet>
</p:panelGrid>
</div>
</h:form>
</ui:define>
</ui:composition>
Ci-dessous est base.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>My Web Portal</title>
<h:outputStylesheet library="css" name="default.css" />
</h:head>
<h:body>
<p:growl id="message" showDetail="true" life="3000" />
<h:link outcome="index" style="text-decoration: none;">
<div id="header" style="margin: 2px; width: 100%; text-align: center;">
<p:panel>
<h:outputText value="My Web Portal"
style="font-size: 20px; " />
</p:panel>
</div>
</h:link>
<div id="middle" style="margin: auto; width: 80%;">
<ui:insert name="center"></ui:insert>
</div>
<div id="footer"
style="clear: both; text-align: center; margin: 2px; width: 100%;">
<p:panel header="2013 All rights reserved. Designed by Ravi Joshi">
<h:link value="Home" outcome="index" />
<p:spacer width="10px;" />
<h:link value="About Us" outcome="index" />
<p:spacer width="10px;" />
</p:panel>
</div>
</h:body>
</html>
La page suivante home.xhtml
est également à l'aide de base.xhtml
de la même manière que index.xhtml
est à l'aide de... ci-Dessous est extrait de il-
<ui:composition template="/template/common/base.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:define name="center">
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
</ui:define>
</ui:composition>
Ya bien sûr... Permettez-moi de modifier ma question...
Pourriez-vous définir la propriété
ajax=false
pour bouton de commande qui appelle #{client.login}
méthode à l'intérieur d'index.xhtml?Je vais répondre à la question 🙂
Mon Problème est résolu par [ce post][1], Peut-être cela vous aide. [1]: stackoverflow.com/questions/9932446/...
OriginalL'auteur Ravi Joshi | 2013-03-29
Vous devez vous connecter pour publier un commentaire.
Dit BalusC ici. Donc, dans votre cas que vous faites de la navigation vers une autre page et stucks dans cet état d'affichage bug,
ajax=false
indique soumettre le bouton sans AJAX c'est pourquoi il fonctionne.Aussi BalusC suggère d'utiliser un script qui corrige ce bug ici.
OriginalL'auteur Ömer Faruk Almalı