2013-10-14 46 views
3

,所以我有這樣的代碼(不是在細節)如何他們在JSF提交後

<p:tabView id="tabviewId"> 
<p:tab> 
<h:form id="mainHeadOfAccountsId_form"> 
// some input fields with validation 
// using viewscoped 
<p:commandButton value="Add" process="mainHeadOfAccountsId_form" update="mainHeadOfAccountsId_form :#{p:component('allMainHeadOfAccountsId_table')} :#{p:component('successfullySavedUpdatedId_growl')}" action="#{budgetHeadOfAccountsAction.addMainHeadOfAccountsOnAjax}" /> 

/// also using <p:datatable id= "allMainHeadOfAccountsId_table" > 
</h:form 
</p:tab> 

<p:tab> 
<h:form> 
</h:form 
</p:tab> 

</p:tabView> 
<p:growl id="successfullySavedUpdatedId_growl" for="successfullySavedUpdatedFor_growl" value="error" showDetail="false" /> 

我的問題是,當我提交表單mainHeadOfAccountsId_form成功我需要更新(重置)重置所有字段的形式輸入這是在mainHeadOfAccountsId_form 但請記住,我也使用<h:selectOneMenu>所以我想重置(選項[0]選擇)不是空的,我該怎麼做?目前它的更新allMainHeadOfAccountsId_tablesuccessfullySavedUpdatedId_growl除了mainHeadOfAccountsId_form 我已經厭倦了tabviewId:mainHeadOfAccountsId_form,但得到的異常成分沒有找到, 因爲我想這是隻是因爲@viewScoped,我應該在我的動作類(的.java)重置這些投入價值,MI權?

+3

舉行你是絕對正確的名單。 '@ ViewScoped' bean保留你的submited值。您有兩種選擇,在操作方法發生時手動重置它們,或者使用「@ RequestScoped」bean進行重置,一旦提交de form就會重新創建。 –

+0

@XtremeBiker你能指導我手動嗎?我不想使用'@ RequestScoped' bean。 –

+0

對不起,但你的代碼看起來對我來說難以辨認。提交表單時,您必須手動初始化您想要的每個值(將其設置爲「null」或您想要的值)。然後,只更新您感興趣的組件或整個表單。 –

回答

0

看看primefaces提供reset input或通過在bean的動作提交表單後新的或空重置值,並重新創建

<h:selectOneMenu>