Ajax 隐藏组件,然后显示,不保存值

Ajax 隐藏组件,然后显示,不保存值,ajax,jsf,jsf-2,Ajax,Jsf,Jsf 2,我有一个JSF2.0Web应用程序,带有ajaxified标签 要切换选项卡,我显示一个选项卡,隐藏其他选项卡(使用条件render=“#{x==y}”或使用条件display:none/block通过条件styleClass`ing 在任何一种情况下,我都可以正确地显示或隐藏选项卡 问题在于,在隐藏/显示选项卡时,输入框中输入的值不会保留(换句话说,如果在选项卡1中输入一些值,请转到选项卡2,然后返回选项卡1,则不会保留这些值) 我在选项卡选择上使用这个标记(由散列更改事件触发) 谢谢 代

我有一个JSF2.0Web应用程序,带有ajaxified标签

要切换选项卡,我显示一个选项卡,隐藏其他选项卡(使用条件
render=“#{x==y}”
或使用条件
display:none/block
通过条件
styleClass
`ing

在任何一种情况下,我都可以正确地显示或隐藏选项卡

问题在于,在隐藏/显示选项卡时,输入框中输入的值不会保留(换句话说,如果在选项卡1中输入一些值,请转到选项卡2,然后返回选项卡1,则不会保留这些值)

我在选项卡选择上使用这个
标记(由散列更改事件触发)


谢谢

代码将显示选项卡栏和选项卡内容:

<ui:define name="content">
    <f:view>
        <h:panelGroup styleClass="navBar">
            <ul>
                <ui:repeat value="#{hello.tabList}" var="tab">
                    <li onclick="window.location='\##{tab.tabHash}'"><h:panelGroup
                            styleClass="#{hello.chose == tab.tabHash?'activeTab':''}">
                            <h:outputText value="#{tab.tabName}" />
                        </h:panelGroup>
                    </li>
                </ui:repeat>
            </ul>
        </h:panelGroup>
        <h:panelGroup id="contentPanels" styleClass="tabContentBar">
            <c:forEach items="#{hello.tabList}" var="tab">
                <h:panelGroup rendered="#{hello.chose == tab.tabHash}">
                    <!-- <h:panelGroup styleClass="#{hello.chose == tab.tabHash?'shownTabContents':'hiddenTabContents'}">  -->
                    <ui:include src="#{tab.tabFile}" />
                </h:panelGroup>
            </c:forEach>
        </h:panelGroup>
    </f:view>
</ui:define>

最后,特定选项卡的内容包括:

<h:outputText value="TESTING 1" />
<h:panelGroup styleClass="formField">
    <h:outputText value="Enter Value:" />
    <h:inputText value="#{general.name}" />
</h:panelGroup>

更新
刚才注意到,即使我没有隐藏选项卡并按下按钮,值也会被重置。只有在使用视图范围的bean并且在选项卡导航期间(或之前)将所需表单提交到服务器端时,值才会被保留


作为替代方案,您可以一次呈现所有选项卡,并仅使用JS/CSS来显示/隐藏选项卡内容。CSS隐藏的输入仍将提交到服务器端。

您可以使用隐藏/显示事件显示xhtml的选项卡部分吗?@Dave-Added code.Tnx.Tnx。在CSS中隐藏是否意味着分配一个具有
显示:无
的类?是的。并且n仅用JS切换。注释掉的行不是仅用JS吗?(因为这不起作用)只是注意到,即使我不隐藏选项卡并按下按钮,值也会重置。调查…@Ben:这是JSF和EL。用JS我指的是JavaScript。代码进入
,并在webbrowser而不是webserver中运行。
<h:outputText value="TESTING 1" />
<h:panelGroup styleClass="formField">
    <h:outputText value="Enter Value:" />
    <h:inputText value="#{general.name}" />
</h:panelGroup>