【问题标题】:how to reset form inputs after they are submitted in jsf在jsf中提交后如何重置表单输入
【发布时间】: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 中的所有字段 但请记住,我也在使用&lt;h:selectOneMenu&gt;,所以我想重置(已选择选项 [0])不为空,我该怎么做?目前它正在更新allMainHeadOfAccountsId_tablesuccessfullySavedUpdatedId_growl 除了mainHeadOfAccountsId_form 我已经厌倦了tabviewId:mainHeadOfAccountsId_form,但是找不到异常组件, 我想这只是因为@viewScoped,我应该在我的操作类(.java)中重置这些输入的值,对吗?

【问题讨论】:

  • 你绝对是对的。 @ViewScoped bean 保留您提交的值。您有两个选择,当操作方法发生时手动重置它们或使用@RequestScoped bean,一旦您提交表单,它将重新创建。
  • @XtremeBiker 你能指导我手动方式吗?我不想使用@RequestScoped bean。
  • 抱歉,我的代码看起来难以辨认。提交表单时,您必须手动初始化您想要的每个值(设置它null 或您想要的值)。然后,只更新您感兴趣的组件或整个表单。

标签: jsf-2 primefaces


【解决方案1】:

查看 primefaces 为reset input 提供什么或在通过 bean 中的操作提交表单后将值重置为 new 或 null 并重新创建由

持有的列表
<h:selectOneMenu>

【讨论】:

    猜你喜欢
    • 2011-10-21
    • 2021-09-29
    • 2015-12-28
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多