0

簡単なメッセージを表示しようとして<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);
    }
}

問題は、によって追加された、Faces.addGlobalError()またはFaces.addError()my によって表示されないメッセージ<p:messages.../>です。このメッセージは、開発モードの未処理メッセージにのみ表示されます。HTML を検査するときに見てみましょう。

<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()Faces.addError()
  • 使用済みFacesMessage message = new FacesMessage();

上記のどれも機能しませんでした。他に何をすべきかわかりません。現在、MyFaces 2.1.12、Primefaces 4.0、および Omnifaces 1.5 を使用しています。

4

1 に答える 1