2012-03-09 49 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方法框架是這樣的:

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

不應該在網頁的classifyProducts後自動刷新()方法完成,因爲隱式的導航?

回答

11

默認情況下,Primefaces命令按鈕發送ajax請求。嘗試將屬性ajax='false'添加到p:commandButton

+0

太棒了。我沒有意識到這一點。有效。儘管如此,我還是不能接受你的答案。 – Catfish 2012-03-09 15:33:33

+1

這不是一個好主意。有一個原因是默認情況下請求是ajax。刷新整個頁面通常不是必需的。 – MatsT 2012-03-09 15:36:03

+0

我需要刷新頁面,因爲在我的classifyProducts函數中,那裏有邏輯並基於邏輯結果,它會更新頁面或重定向到其他頁面。 – Catfish 2012-03-09 18:58:12

6

您需要指定要刷新頁面的哪些部分。例如,向commandbutton標籤添加update =「@ form」應該適用於這裏的技巧,或者您可以指定要更新的單個組件的ID。

+0

不是樹。一個action屬性應該做一個重定向。 actionListener需要更新來實際更新頁面的一部分。我不知道默認情況下primefaces是ajax = true。至少這是我對它的理解。雖然我很可能錯了.. – Catfish 2012-03-09 18:56:43