0

私は素顔アプリケーションを持っています。メニューとタブがあります。メニューバーのメニュー項目をクリックすると、Manage Bean の配列リストにが挿入され、xhtml ページのタブが開きます。タブの [閉じる] タブをクリックすると、配列リストからタブの値が削除され、タブが閉じます. しかし、任意のタブにページを含め、ページにinputTextと入力テキストrequired=trueがある場合、ページを閉じると、そのときにテキストフィールドにデータがなく、タブデータはマネージドBeanの配列リストから削除できません。

メニューバーと出力タブ用

<h:form id="menu">                
        <p:menubar autoDisplay="true">
           <p:submenu id="student" label="Student">       
                <p:menuitem id="studentAdmission" value="Student Admission" action="#{ajaxBean.editAction}" ajax="true" update=":outputForm">
                    <f:setPropertyActionListener target="#{ajaxBean.action}" value="StudentAdmission" />
                </p:menuitem>
                <p:menuitem id="studentList" value="Student Profile" action="#{ajaxBean.editAction}" ajax="true" update=":outputForm">
                    <f:setPropertyActionListener target="#{ajaxBean.action}" value="StudentProfile" />
                </p:menuitem>                        
            </p:submenu>
            <p:submenu id="registration" label="Registration">
                <p:menuitem id="registrationAdd" value="Subject Registration" action="#{ajaxBean.editAction}" ajax="true"  update=":outputForm">
                    <f:setPropertyActionListener target="#{ajaxBean.action}" value="SubjectRegistration"/>                                 
                </p:menuitem>
                <p:menuitem id="registrationList" value="List of Registration" action="#{ajaxBean.editAction}" ajax="true" update=":outputForm">
                    <f:setPropertyActionListener target="#{ajaxBean.action}" value="RegistrationList" />
                </p:menuitem>                        
            </p:submenu>
        </p:menubar>
    </h:form>       
    <h:form id="outputForm">
        <p:tabView id="outputTab">
            <p:ajax event="tabClose" listener="#{ajaxBean.closeTab}"/>
            <c:forEach items="#{ajaxBean.chcekItem}" var="item" varStatus="loop">
                <p:tab id="#{item}" title="#{item}" closable="true">                            
                    <ui:include src="#{bundle[item]}"/>   

                </p:tab>
            </c:forEach>
        </p:tabView>
    </h:form>

ここの誰でも私を助けてください。

4

1 に答える 1

1

ここで私が使用する質問で

 <p:ajax event="tabClose" listener="#{ajaxBean.closeTab}"/>

タブを閉じる

そして私が見つけた解決策は

<p:ajax event="tabClose" immediate="true" listener="#{ajaxBean.closeTab}"/>

つまり、何らかの方法でタブを閉じて送信tabClose actionしたいmanagedbean場合は、使用する必要がありますimmediate="true"

于 2012-07-27T09:25:23.660 に答える