我有一個Ajax化選項卡的JSF 2.0 web應用程序。隱藏組件,然後再顯示它,值不保存
要通過有條件styleClass
`ING切換標籤我展示一個和隱藏的其他人(無論是有條件render="#{x==y}"
或與display:none/block
。
在任何情況下,我得到的標籤,以顯示或正確地隱藏。
問題是在輸入框中輸入的值沒有保留拋出一個選項卡的隱藏/顯示(換句話說,如果您在選項卡1中輸入一些值,請轉到選項卡2並返回選項卡1,值爲不保留)。
我用這個<f:ajax>
標籤上標籤選擇(由散列變化事件引發)
<h:form id="processFragment" prependId="false" class="hide">
<h:inputText id="fragment" value="#{fbean.fragment}">
<f:ajax event="change" execute="contentSection" listener="#{fbean.processFragment}"
render="contentSection" />
</h:inputText>
</h:form>
<div>
<h:form id="contentSection">
<ui:insert name="content" />
</h:form>
</div>
謝謝!
的代碼顯示標籤欄和標籤內容:
<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>
UPDATE 只注意到,即使我不不隱藏標籤並按下按鈕,數值將被重置。調查...
你可以用隱藏/顯示事件顯示你的xhtml的標籤部分嗎? – 2011-05-15 15:28:31
@Dave - 添加的代碼。 TNX。 – Ben 2011-05-15 15:39:49