无法重置输入字段JSF

时间:2014-03-10 22:23:10

标签: jsf primefaces

我正在尝试为JSF主要面孔休息所有inputValues

我有一些InputFields和一些选择菜单,菜单在点击SAVE按钮后工作正常,但输入值未清除

我不想使用spearat按钮,我想在点击保存后自动设置然后重置所有输入字段:

HTML code:

    </h:form>       
                        <center>
            <h:form id="form" style="width: 600px; text-align: center;">

            <p:panel id="panel" header="اضافه طالب غائب">
                <p:growl id="msgs" showDetail="true" />
                    <p:panelGrid columns="2">


                       <h:outputLabel value="رقم المعلم:" />
                        <p:inputText label="رقم المعلم" required="true"
                        requiredMessage="Contact Number required!"
                        style="width: 150px; text-align: center;"
                        value="#{pprBean.teacherid}"/>                  





                <h:outputLabel  value="اختر الفصل" />

<p:selectOneMenu id="city20" value="#{pprBean.classname}" style="text-align:center;"> 
                <f:selectItem itemLabel="اختر الفصل" itemValue="" style="text-align:center;" />  
                <f:selectItems value="#{pprBean.clasess}" style="text-align:center;" />     
                <p:ajax update="city21"  
                        listener="#{pprBean.handleclassnameChange}" /> 
            </p:selectOneMenu>          


                        <h:outputLabel  value="اختر الطالب" />
                                    <p:selectOneMenu id="city21" value="#{pprBean.names}" style="width:140px; text-align:center;"> 
                <f:selectItem itemLabel="اسم الطالب" itemValue="" style="text-align:center;" />  
                <f:selectItems value="#{pprBean.studentnames}" style="text-align:center;" />     
                <p:ajax update="" listener="#{pprBean.handlenamesChange}" />  
            </p:selectOneMenu> 


                            <h:outputText value="الفتره من " />
                            <p:calendar value="#{pprBean.from}" showButtonPanel="true"
                                pattern="yyyy-MM-dd" 
                                style="width: 200px; text-align: center;" />

<h:outputLabel  value="الحصة" />
<p:selectOneMenu id="city1" value="#{pprBean.interval}" style="width:140px; text-align:center;">  
                <f:selectItem itemLabel="اختر الحصة" itemValue="" style="width:140px; text-align:center;" />  
                <f:selectItems value="#{pprBean.intervals}" style="width:140px; text-align:center;" />     
                <p:ajax update=""  
                        listener="#{pprBean.handleintervalChange}" />  
            </p:selectOneMenu>  


<h:outputLabel value="الحالة" />
<p:selectOneMenu id="city3" value="#{pprBean.appsent}" style="text-align:left;">  
                <f:selectItem itemLabel="حالة لغياب" itemValue="" style="text-align:left;"/>  
                <f:selectItems value="#{pprBean.apssents}" style="text-align:left;" />     
                <p:ajax update=""  
                        listener="#{pprBean.handleappsentChange}" />  
            </p:selectOneMenu> 

                    </p:panelGrid>
                    </p:panel>
                    <p:commandButton action="#{pprBean.insert}"
                            value="ادخال" update="form"/>


            </h:form>

        <p:ajaxStatus style="width:64px;height:64px;position:fixed;right:5px;bottom:5px">  
    <f:facet name="start">  
        <p:graphicImage value="/css/loading.gif" />  
    </f:facet> 


    <f:facet name="complete" process="@this" type="org.primefaces.examples.view.CleanLocalValuesListener"> 

        <h:outputText value="" />  
    </f:facet>  
</p:ajaxStatus>
            </center>
            <br />  
            <br />  
        </ui:define>
    </ui:composition>
</h:body> 

代码:

    public void reset() {  
    RequestContext.getCurrentInstance().reset("form:panel"); 
    teacherid=null;
    classname=null;
    interval=null;
    studentcode=null;
    names=null;
    from=null;
} 

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

尝试使用JSF的preRenderView事件并调用Bean函数:

<f:metadata>
  <f:event type="preRenderView" listener="#{rBean.resetValues}"/>
</f:metadata>

如上例所示,rBean的resetValues函数将在每个页面加载时调用。在此函数中,您可以重置所有bean变量,如下所示:

public void resetValues()
{

    setName(null);
    setAddress(null);
    .
    .
    .

}