2010-02-25 48 views
2

this previously asked question,我注意到,當我移動rich:panelMenu(這在index.jsp頁面時正常工作)爲another.jsp,然後包括在index.jsp使用a4j:include標籤, rich:panelMenu功能停止工作。RichFaces的豐富:panelMenu停止工作時A4J:include'd

這是一個錯誤?

EDIT 1

響應於編碼和後一些隔離測試,這個問題似乎從rich:dataTable的從panelMenu一個rich:tabPanel的另一選項卡的共存幹。

如果我index.jsp包含默認的簡單panelMenu使用演示代碼(INC在bean),它按預期工作:

<f:view> 
    <rich:page pageTitle="title" markupType="xhtml"> 
     <h:outputText id="setup" value="#{MyBacking.setup}" /> 
     <rich:toolBar height="35" itemSeparator="line"> 
      <rich:toolBarGroup location="left"> 
       <a4j:form> 
        <a4j:outputPanel id="panel"> 
         <h:outputText style="text-align: center" value="Node Select " /> 
         <h:selectOneMenu id="nodes" value="#{MyBacking.chosenNode}"> 
          <f:selectItems value="#{MyBacking.nodes}" /> 
         </h:selectOneMenu> 
         <a4j:commandButton value="Retrieve" 
          reRender="panel,contentPanel" 
          onclick="this.disabled=true" oncomplete="this.disabled=false" /> 
        </a4j:outputPanel> 
       </a4j:form> 
      </rich:toolBarGroup> 
     </rich:toolBar> 
<!-- added start --> 
     <h:form id="form"> 
      <h:panelGrid columns="2" width="100%"> 
       <rich:panelMenu style="width:200px" mode="ajax" 
        iconExpandedGroup="disc" iconCollapsedGroup="disc" 
        iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right" 
        iconCollapsedTopGroup="chevronDown"> 
        <rich:panelMenuGroup label="Group 1"> 
         <rich:panelMenuItem label="Item 1.1" 
          action="#{PanelMenu.updateCurrent}"> 
          <f:param name="current" value="Item 1.1" /> 
         </rich:panelMenuItem> 
        </rich:panelMenuGroup> 
       </rich:panelMenu> 
       <rich:panel bodyClass="rich-laguna-panel-no-header"> 
        <a4j:outputPanel ajaxRendered="true"> 
         <h:outputText value="||#{PanelMenu.current}|| selected" 
          id="current" /> 
        </a4j:outputPanel> 
       </rich:panel> 
      </h:panelGrid> 
     </h:form> 
<!-- added end --> 
     <rich:panel> 
      <h:panelGroup layout="block" id="contentPanel"> 
       <a4j:include viewId="#{MyBacking.viewId}"> 
        <f:param name="targetIdParam" value="content" /> 
       </a4j:include> 
      </h:panelGroup> 
     </rich:panel> 
    </rich:page> 
</f:view> 

但是,如果我從這個文件中刪除添加panelMenu並將其粘貼到一個單獨的標籤在tabPanel的外部jsp頁面中,然後a4j:included在上面的index.jsp中,當它被加載時,panelMenu拒絕工作(不向日誌或控制檯輸出任何東西),而在我的標籤集的另一個選項卡中有rich:dataTable。使用完全相同的代碼,但從第二個選項卡中刪除了dataTable,這一切都再次開始工作。

下面是與panelMenua4j:include d文件:

<h:panelGrid columns="1" border="0" style="width: 100%"> 
    <rich:tabPanel switchType="client" rendered="true"> 
     <rich:tab styleClass="tab" label="Node Logs"> 
      <h:panelGrid columns="2" border="0"> 
       <h:graphicImage value="/btn50.png" width="30" height="30" 
        alt="Logs" /> 
       <h:outputText value="log: #{MyBacking.chosenNode}" 
        styleClass="pageTitle" /> 
      </h:panelGrid> 

      <h:form id="form"> 
       <h:panelGrid columns="2" width="100%"> 
        <rich:panelMenu style="width:200px" mode="ajax" 
         iconExpandedGroup="disc" iconCollapsedGroup="disc" 
         iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right" 
         iconCollapsedTopGroup="chevronDown"> 
         <rich:panelMenuGroup label="Group 1"> 
          <rich:panelMenuItem label="Item 1.1" 
           action="#{PanelMenu.updateCurrent}"> 
           <f:param name="current" value="Item 1.1" /> 
          </rich:panelMenuItem> 
         </rich:panelMenuGroup> 
        </rich:panelMenu> 
        <rich:panel bodyClass="rich-laguna-panel-no-header"> 
         <a4j:outputPanel ajaxRendered="true"> 
          <h:outputText value="||#{PanelMenu.current}|| selected" 
           id="current" /> 
         </a4j:outputPanel> 
        </rich:panel> 
       </h:panelGrid> 
      </h:form> 

     </rich:tab> 

     <rich:tab styleClass="tab" label="Docs"> 
      <rich:dataTable value="#{MyBacking.MyData}"> 
       <rich:column style="text-align:center" width="150px"> 
       </rich:column> 
      </rich:dataTable> 
     </rich:tab> 
    </rich:tabPanel> 
</h:panelGrid> 

感謝

+0

最有可能不是一個錯誤。給我們更多的代碼,並檢查你的JavaScript控制檯的細節。 – Bozho 2010-02-25 20:41:34

+0

@Bozho,請參閱附加代碼和診斷。 – volvox 2010-03-01 12:53:53

回答

1

這個問題就走了,當我重鑄的taglib聲明爲

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:a4j="http://richfaces.org/a4j" 
    xmlns:rich="http://richfaces.org/rich"> 

而不是使用<% %>標籤(這無論如何不用於facelets)

並安裝了jsf-facelets-1.1.14.jar。直到這一點,根本沒有安裝facelets jar!

相關問題