0

こんにちは、Primefaces 3.5 を使用して JSF に取り組んでいます。以下は、メニュー項目を使用してあるページから別のページに切り替えるためのコード スニペットです。あるページから別のページに移動するときにページ フリックを回避するために ajax 呼び出しを使用しようとしています。

以下は私のxhtmlファイルのコードです:

<p:menubar styleClass="brzero borderb">
      <p:menuitem value="Student" action="#{studentMB.show('menu')}" ajax="true" />
      <p:menuitem value="Users" action="#{usersMB.show('menu')}" ajax="true" />
      <p:menuitem value="Departments" action="#{departmentMB.show('menu')}" ajax="true" />
</p:menubar>

使用されたマネージド Bean の show アクション関数は次のようになります。

public String show(String mode) {               
    if (mode.equals("menu")){
        selectStudent=null;
    init();
        return "studentList.jsf";
    }
    else if (mode.equals("list")){
        return "welcome.jsf";
    }
    else {
        clone(selectStudent, oldStudent);
        return "studentEdit.jsf";
    }                   
} 

コードは localhost tomcat サーバーでは正常に動作していますが、インターネット経由でアクセスするリモート サーバーに展開すると、これらの呼び出しに 15 ~ 20 秒ほどの時間がかかります。これがネットワーク/DNSの問題であるかどうかを確認するために、2つの3つの異なるネットワークサーバーで試しましたが、すべてのサーバーで問題が解決しません.

これの理由となる可能性のあるアイデア/ヘルプ、または私が間違っていることは何か、部分的なリクエストを処理したりセクションを更新したりするためにajaxを使用する必要があることはわかっていますが、ページ切り替えの解決策は何ですか..

4

1 に答える 1

0

これは、JSF ナビゲーションで行う必要があります。以下の解決策を参照してください。

これをあなたのfに追加してくださいaces-config.xml

<navigation-rule>
        <from-view-id>/index.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>menu</from-outcome>
            <to-view-id>/studentlist.xhtml</to-view-id>
        </navigation-case>
</navigation-rule>

結果が「メニュー」の場合は常にリダイレクトするだけですstudentlist.xhtml.

main.xhtml今、あなたをに更新してください

<p:menubar styleClass="brzero borderb">
      <p:menuitem value="Student" action="menu"/>
</p:menubar>

誰かが学生メニューを選択すると、自動的ににリダイレクトされますstudentlist.xhtml.

それを試してみてください !

于 2013-10-29T06:50:53.087 に答える