我正在尝试显示简单的消息,<p:messages/>
但只有我得到的是 MyFaces 开发模式的消息。我会解释。
在我的 XHTML 页面上,我有以下代码来显示我的消息:
<div class="messagePanel">
<p:messages id="msgCalls"
for="msgCalls"
showDetail="true"
showSummary="true"
autoUpdate="true"
closable="true" />
</div>
在我的豆子上:
@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);
}
}
问题是,由 my添加Faces.addGlobalError()
或未显示的消息。该消息仅显示在开发模式的未处理消息上。当我检查 HTML 时看看:Faces.addError()
<p:messages.../>
<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>
我已经尝试了其他一些方法:
- 只放在 XHTML 上
<p:messages/>
;<h:messages>
- 尝试使用
Faces.addGlobalError()
andFaces.addError()
; - 用过的
FacesMessage message = new FacesMessage();
以上都没有奏效。我不知道还能做什么。目前,我正在使用 MyFaces 2.1.12、Primefaces 4.0 和 Omnifaces 1.5。