2016-11-26 43 views
2

當我想從我的jsf頁面「刪除飛機」時,如果飛機成功刪除,並且我做了一個重定向到頁面並顯示警告,告訴用戶飛機已成功刪除。但是,用戶在h:inputText中輸入的值仍然存在,它們不會爲空。提交併重定向後輸入字段未清空?

JSF頁面:

<h:form> 
    <h:panelGrid columns="3" class="table"> 
     <h:outputLabel value="Plane ID" /> 
     <h:inputText value="#{listAirplaneBB.airPlaneId}"/> 
     <h:commandButton value="Delete" 
      class="btn btn-primary" 
      action="#{addAirplaneCtrl.deleteAirplane}" /> 
    </h:panelGrid> 
</h:form> 

豆代碼:

public String deleteAirplane(){ 
    //delete the plane 
    return private/user?faces-redirect=true; 
} 

爲什麼領域不空的任何想法重定向之後?

回答

2

也許你的listAirplaneBB是一個@ViewScoped bean(不能告訴你的例子)。
在這種情況下,您必須在重定向之前手動清除任何特定字段,因爲JSF在目標頁面未更改時保持活動狀態。

+0

是的,它是一個** @ ViewScoped ** bean。我應該將其更改爲** @ RequestScoped **還是實施手動重置?我應該選擇哪一個?我用來從我的後端部分獲取飛機列表的bean - – Carlton

+0

很難說,因爲它取決於頁面的內容是否需要ajax處理。在這種情況下,您很可能必須留在** ViewScoped **中。另一方面,如果您的文章中的表單內容是該頁面上預期的唯一內容,那麼我會去** RequestScoped **,因爲以這種方式配置它會更自然。希望有所幫助。 –

+0

這裏是一個鏈接到這篇文章,它解釋了一些更詳細的區別 - http://stackoverflow.com/questions/6025998/difference-between-view-and-request-scope-in​​-managed-beans –