2012-03-09 44 views
0

アクションが完了した後にページがリフレッシュされないという問題が発生しています。JSF 2アクション完了後にページがリフレッシュされない

私はページ上でこのフォームを持っている:

<h:form id="fundingResults"> 

    <p:ajaxStatus style="width:16px;height:16px;"> 
     <f:facet name="start"> 
      <p:graphicImage value="/images/loading4.gif" /> 
     </f:facet> 
     <f:facet name="complete"> 
      <h:outputText value="" /> 
     </f:facet> 
    </p:ajaxStatus> 

    <p:dataTable> 
     // some form elements in the table 
    </p:dataTable> 

    <p:commandButton id="btnEdit" value="Submit" type="submit" action="#{fundingBacker.classifyProducts}" style="float: right;margin-top:15px;" />   

</h:form> 

マイclassifyProducts方法スケルトンは、このようなものです:のためclassifyProducts()メソッドが完了した後

public void classifyProducts() { 
    // a bunch of stuff goes on in here 
} 

は、ページが自動的に更新すべきではありません暗黙のナビゲーション?

答えて

11

Primefacesコマンドボタンは、デフォルトでajax要求を送信します。属性ajax='false'p:commandButtonに追加してください。

+0

驚くばかりです。私はこれを知らなかった。出来た。私は8分以上あなたの答えを受け入れることはできません。 – Catfish

+1

これは本当に良い考えではありません。要求がデフォルトではajaxである理由があります。通常、ページ全体を更新する必要はありません。 – MatsT

+0

私のページをリフレッシュする必要があるのは、自分のclassifyProducts関数にロジックがあり、ロジックの結果に基づいてページを更新するか、別のページにリダイレクトするからです。 – Catfish

6

更新するページの部分を指定する必要があります。たとえば、コマンドボタンのタグにupdate = "@ form"を追加すると、ここでトリックするか、更新する個々のコンポーネントのIDを指定できます。

+0

ツリーではありません。アクション属性はリダイレクトを行う必要があります。 actionListenerは、ページのセクションを実際に更新するために更新が必要です。私はプライムフェイスがデフォルトでajax = trueであることに気づいていませんでした。少なくともそれが私の理解です。私は非常によく間違っている可能性があります.. – Catfish

関連する問題