【发布时间】:2013-10-14 07:22:29
【问题描述】:
所以我有这个代码(不详细)
<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_table 和successfullySavedUpdatedId_growl 除了mainHeadOfAccountsId_form
我已经厌倦了tabviewId:mainHeadOfAccountsId_form,但是找不到异常组件,
我想这只是因为@viewScoped,我应该在我的操作类(.java)中重置这些输入的值,对吗?
【问题讨论】:
-
你绝对是对的。
@ViewScopedbean 保留您提交的值。您有两个选择,当操作方法发生时手动重置它们或使用@RequestScopedbean,一旦您提交表单,它将重新创建。 -
@XtremeBiker 你能指导我手动方式吗?我不想使用
@RequestScopedbean。 -
抱歉,我的代码看起来难以辨认。提交表单时,您必须手动初始化您想要的每个值(设置它
null或您想要的值)。然后,只更新您感兴趣的组件或整个表单。
标签: jsf-2 primefaces