0

JSF 2.1.19 で JBoss EAP 6.1 スタンドアロンを使用しており、ルート コンテキストでホストを仮想サーバーとして設定しています。(/myApp のような非ルート コンテキストを使用すると、すべて正常に動作します)。フラッシュ スコープを使用したリダイレクト後に FacesContext 情報メッセージを表示しようとしています。何らかの理由で、Faces メッセージが 2 ページ目に一貫して表示されません。あるときもあれば、ないときもあります。最初のページに戻ってくることもあります。

これが私のJSF2 Beanです:

@ManagedBean
@RequestScoped
public class TestBean {

    public String submit() {
        System.out.println("...adding faces info message....");
        FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true);
        FacesContext.getCurrentInstance().addMessage(null,new FacesMessage("Faces Info Message"));
        return "/second/secondPage?faces-redirect=true";
    }
}

関連する firstPage.xhtml:

<h:form>
    <h:commandButton value="ClickMe" action="#{testBean.submit()}"/>
</h:form>

関連する secondPage.xhtml:

<h:body>
    <h:messages id="globalMessages" globalOnly="true"/>
    <h:link outcome="/firstPage" value="Back"/>
</h:body>

JBoss スタンドアロン.xml:

<subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual-server="myApp" native="false">
    <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
    <virtual-server name="myApp" enable-welcome-root="false" default-web-module="myApp">
        <alias name="localhost"/>
    </virtual-server>
</subsystem>

myApp でパッケージ化された jboss-web.xml:

<jboss-web>
    <context-root>/</context-root>
    <virtual-host>myApp</virtual-host>
</jboss-web>

助けてください!私はこれに完全に困惑しています。

4

1 に答える 1

0

JBoss のバグであることが判明しました。ルート コンテキスト アプリケーションを使用している場合、FacesMessages は post-redirect-get で適切に存続しません。ここにファイル: https://bugzilla.redhat.com/show_bug.cgi?id=1017242

于 2013-10-14T19:26:08.003 に答える