2017-04-14 6 views
0

NewTestという名前のCDI Beanに裏打ちされたnewTest.xhtmlというページがあります。ユーザーがボタンをクリックすると、backinhgで作業する必要がありますbeanと同じページnewTest.xhtmlに戻ります。問題は、ボタンをクリックするとブラウザがページを更新しないということです。手動で更新をクリックすると、ブラウザがページを更新します。私の質問は:JSFでどのように私はいつも、サーバーではありませんJSFのサーバーから常にpage.xhtmlをロードするようにブラウザに指示する方法

public String doWork() { 
     //do some work 

     return "/newTest.xhtml?faces-redirect=true"; 
    } 

は、私が使用して問題を修正した修正され、キャッシュからページをロードするために、ブラウザに伝えることができますAJAXのrender =

「すべて@」
<h:commandButton > 
    <f:ajax execute="@all" render="@all"/> 
</h:commandButton> 
+1

へのリダイレクトを行うことができます。それについての多くの質問と回答がstackoverflow – Kukeltje

+0

いいえ、それは私の質問ではありません。私の質問はそれよりも具体的です。その質問の重複した@BalusCではありません。 – usertest

+0

いくつかのこと:1)質問が投稿された方法は重複しています.2)StackOverflowは質問を編集するのではなく、答えを**作成して解決策を入れます。 3)質疑応答には関係があります。あなたの質問や回答は、彼らがどのように関連しているかについてのいかなる示唆もありません。 4)execute = "@ all"、render = "@ all"はあまり一般的ではなく、何らかの点でエラーが発生しやすい解決方法です。あなたはおそらくページの小さな部分を更新する可能性があります5)同じページにとどまりたい場合は、リダイレクトをした理由が分かりません6)... – Kukeltje

答えて

0

あなたはとても効果的にあなたの質問にページをキャッシュしない方法でリクエストページ

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 
externalContext.redirect(((HttpServletRequest) externalContext.getRequest()).getRequestURI()); 
+0

私はこれを試してみましたが、うまくいかなかった – usertest

関連する問題