J'essaie d'afficher des messages simples avec <p:messages/>
mais seulement j'ai le message du mode de développement de MyFaces. Je vais expliquer.Afficher uniquement les messages avec: Project Stage [Développement]: messages non gérées
Sur ma page XHTML, j'ai le code suivant pour diplay mes messages:
<div class="messagePanel">
<p:messages id="msgCalls"
for="msgCalls"
showDetail="true"
showSummary="true"
autoUpdate="true"
closable="true" />
</div>
Sur mon haricot:
@PostConstruct
public void init() {
try {
this.linhaCelularId = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("linhaCelularId");
if (this.linhaCelularId == null || this.linhaCelularId.trim().isEmpty()) {
Messages.addGlobalError(MENSAGEM_GLOBAL, "Nenhum celular especificado para listagem de ligações");
}
else {
this.linhaCelularTitular = getLinhaCelularTitularService().getById(Long.parseLong(this.linhaCelularId));
if (this.linhaCelularTitular == null) {
Messages.addGlobalError(MENSAGEM_GLOBAL, "Celular não encontrado!");
}
else if (!this.linhaCelularTitular.getResponsavel().getAn8().equals(this.loginMB.getLoggedUser().getAn8())) {
Messages.addGlobalError(MENSAGEM_GLOBAL, "Você não tem permissão para acessar essa página. Esse erro foi reportado.");
}
else {
this.faturaTitular = getFaturaTitularService().getUltimaFaturaCarregada();
this.itensFaturaTitular = getFaturaTitularService().getItensFaturaPorCelularFatura(this.linhaCelularTitular, this.faturaTitular);
}
}
}
catch (ServiceException e) {
logger.error("Erro ao buscar ultima fatura carregada", e);
throw new RuntimeException(e);
}
}
Le problème est que le message ajouté par Faces.addGlobalError()
ou Faces.addError()
est ne s'affiche pas par <p:messages.../>
. Le message n'apparaît que sur Messages non gérés du mode développement. Jetez un oeil quand je le HTML inspecte:
<ul id="javax_faces_developmentstage_messages"
title="Project Stage[Development]: Unhandled Messages"
style="color:orange">
<li>
<span title="Project Stage[Development]: Unhandled Messages">Você não tem permissão para acessar essa página. Esse erro foi reportado.</span>
</li>
</ul>
je l'ai déjà essayé d'autres façons de le faire:
- Mettez seulement
<p:messages/>
et<h:messages>
sur XHTML; Essayé d'utiliserFaces.addGlobalError()
etFaces.addError()
; - occasion
FacesMessage message = new FacesMessage();
Aucune ci-dessus travaillé. Je ne sais pas quoi faire d'autre. Actuellement, j'utilise MyFaces 2.1.12, Primefaces 4.0 et Omnifaces 1.5.
Essayez de prendre des 'for = "msgCalls"' 'en haut ' –
SRy
@SRy, Merci pour votre réponse. J'ai enlevé 'for =" msgCalls "' et j'ai essayé à nouveau. Sans succès. J'ai changé 'Faces.addGlobalError()' en 'Faces.addError()'. Pas de succès aussi. –