PrimeFaces Tabview第二个标签不显示 - 有条件

时间:2015-07-27 17:36:52

标签: jsf primefaces tabs

我遇到一个不寻常的问题,一个页面左边是一个Tree,右边是一个TabView。到目前为止我已经实现了2个标签。如果第一个选项卡是“配置文件”,则第二个选项卡“用户”不显示(选项卡标题在那里,但选中时选项卡下没有内容)。如果我切换订单并先输入“用户”,则会显示两个标签。

我尝试更改“用户”上的内容 - 我首先使用了accordionPanel,然后想到TabView和Accordion上的标签可能会混淆并将其更改为dataList。 “用户”面板中的内容似乎并不重要。

我会在它运行时显示xhtml代码,何时不显示。

用户面板未显示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
   xmlns:h="http://java.sun.com/jsf/html"
   xmlns:f="http://java.sun.com/jsf/core"
   xmlns:ui="http://java.sun.com/jsf/facelets"
   xmlns:rich="http://richfaces.org/rich"
   xmlns:t="http://myfaces.apache.org/tomahawk"
   xmlns:p="http://primefaces.org/ui"
   xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"   
   xmlns:cust="http://memarden.com">

<link href="CSS/navigation.css" rel="stylesheet" type="text/css" />

<h:body>
   <h3>#{text['organization']}</h3>
   <ui:composition template="template-restricted.xhtml">
      <ui:define name="body_content">
         <h:form id="mainForm">
            <div id="title" class="sl-title">Manage Schools - #{manageOrgHierarchy.selectedOrganization.displayString}</div>
            <div class="sr-content">
            <div class="ui-grid ui-grid-responsive"><div class="ui-grid-row">
             <div class="ui-grid-col-4"><p:panel layout="block">
            <p:toolbar><f:facet name="left">
               <p:commandButton  
                  title="New Root Org"
                  icon="fa fa-folder-open" 
                  rendered="#{userSession.isAdmin}"
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.createNewRootOrg}" />
               <p:commandButton      
                  title="#{text['new.item']}"
                  icon="fa fa-folder-open" 
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.createNewSubOrg}" />
               <p:commandButton      
                  title="#{text['delete']}"
                  icon="fa fa-trash"
                  process="@form"
                  update="@form"
                  disabled="#{not manageOrgHierarchy.canBeDeleted}"
                  action="#{manageOrgHierarchy.delete}" />
               <p:commandButton      
                  title="#{text['save']}"
                  icon="fa fa-save" 
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.save}" />
            </f:facet></p:toolbar>
              <p:tree
                    id="orgTree"
                    value="#{manageOrgHierarchy.rootNodes}"
                  selectionMode="single"
                      selection="#{manageOrgHierarchy.selectedNode}"
                      style="ui-grid-col-2"
                       var="node">
                     <p:ajax event="select" update="mainForm" listener="#{manageOrgHierarchy.nodeSelected}" />
                     <p:ajax event="unselect" update="mainForm" listener="#{manageOrgHierarchy.nodeUnselected}" />
                 <p:ajax event="expand" listener="#{manageOrgHierarchy.nodeExpanded}" />
                 <p:ajax event="collapse" listener="#{manageOrgHierarchy.nodeCollapsed}" />
                  <p:treeNode type="OrganizationHierarchy">
                     <h:outputText value="#{node.nickName}" />
                   </p:treeNode>
              </p:tree></p:panel>
         </div>
         <div class="ui-grid-col-8">
         <p:tabView>
            <p:tab title="#{text['profile']}">
            <p:panelGrid columns="2" layout="grid">
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="name" value="#{text['name']}" />
                  <p:inputText id="name" value="#{manageOrgHierarchy.editOrg.nickName}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="phone" value="#{text['phone']}" />
                  <p:inputText id="phone" value="#{manageOrgHierarchy.editOrg.phone}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="address" value="#{text['address']}" />
                  <p:inputText id="address" value="#{manageOrgHierarchy.editOrg.address}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="city" value="#{text['city']}" />
                  <p:inputText id="city" value="#{manageOrgHierarchy.editOrg.city}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="state" value="#{text['state']}" />
                  <p:inputText id="state" value="#{manageOrgHierarchy.editOrg.state}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="postalCode" value="#{text['post.code']}" />
                  <p:inputText id="postalCode" value="#{manageOrgHierarchy.editOrg.postalCode}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="country" value="#{text['address.country']}" />
                  <p:inputText id="country" value="#{manageOrgHierarchy.editOrg.country}" />
               </p:panelGrid>
            </p:panelGrid>
            <h:panelGroup>
               <p:commandButton      
                  value="#{text['cancel']}"
                  icon="fa fa-trash"
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.cancelEditOrg}" />
               <p:commandButton      
                  value="#{text['save']}"
                  icon="fa fa-save" 
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.saveEditOrg}" />
            </h:panelGroup>
            </p:tab>
            <p:tab title="#{text['users']}">
            <p:dataList value="#{manageOrgHierarchy.userPermissions}" var="p">
               <p:panelGrid columns="2">
                  <cust:avatarOutput owner="#{p.user}" session="#{userSession}"/>
                  <p:panelGrid columns="1">
                     <h:outputText value="#{p.user.displayString}" />
                     <h:outputText value="#{p.user.name}" />
                  </p:panelGrid>
               </p:panelGrid>
            </p:dataList>
            </p:tab>
            <p:tab title="#{text['lessons']}"></p:tab>
            <p:tab title="#{text['reports']}"></p:tab>
         </p:tabView></div></div></div>
         </div>
        </h:form>
      </ui:define>
   </ui:composition>
</h:body>
</html>

两个小组都有效:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
   xmlns:h="http://java.sun.com/jsf/html"
   xmlns:f="http://java.sun.com/jsf/core"
   xmlns:ui="http://java.sun.com/jsf/facelets"
   xmlns:rich="http://richfaces.org/rich"
   xmlns:t="http://myfaces.apache.org/tomahawk"
   xmlns:p="http://primefaces.org/ui"
   xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"   
   xmlns:cust="http://memarden.com">

<link href="CSS/navigation.css" rel="stylesheet" type="text/css" />

<h:body>
   <h3>#{text['organization']}</h3>
   <ui:composition template="template-restricted.xhtml">
      <ui:define name="body_content">
         <h:form id="mainForm">
            <div id="title" class="sl-title">Manage Schools - #{manageOrgHierarchy.selectedOrganization.displayString}</div>
            <div class="sr-content">
            <div class="ui-grid ui-grid-responsive"><div class="ui-grid-row">
             <div class="ui-grid-col-4"><p:panel layout="block">
            <p:toolbar><f:facet name="left">
               <p:commandButton  
                  title="New Root Org"
                  icon="fa fa-folder-open" 
                  rendered="#{userSession.isAdmin}"
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.createNewRootOrg}" />
               <p:commandButton      
                  title="#{text['new.item']}"
                  icon="fa fa-folder-open" 
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.createNewSubOrg}" />
               <p:commandButton      
                  title="#{text['delete']}"
                  icon="fa fa-trash"
                  process="@form"
                  update="@form"
                  disabled="#{not manageOrgHierarchy.canBeDeleted}"
                  action="#{manageOrgHierarchy.delete}" />
               <p:commandButton      
                  title="#{text['save']}"
                  icon="fa fa-save" 
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.save}" />
            </f:facet></p:toolbar>
              <p:tree
                    id="orgTree"
                    value="#{manageOrgHierarchy.rootNodes}"
                  selectionMode="single"
                      selection="#{manageOrgHierarchy.selectedNode}"
                      style="ui-grid-col-2"
                       var="node">
                     <p:ajax event="select" update="mainForm" listener="#{manageOrgHierarchy.nodeSelected}" />
                     <p:ajax event="unselect" update="mainForm" listener="#{manageOrgHierarchy.nodeUnselected}" />
                 <p:ajax event="expand" listener="#{manageOrgHierarchy.nodeExpanded}" />
                 <p:ajax event="collapse" listener="#{manageOrgHierarchy.nodeCollapsed}" />
                  <p:treeNode type="OrganizationHierarchy">
                     <h:outputText value="#{node.nickName}" />
                   </p:treeNode>
              </p:tree></p:panel>
         </div>
         <div class="ui-grid-col-8">
         <p:tabView>
            <p:tab title="#{text['users']}">
            <p:dataList value="#{manageOrgHierarchy.userPermissions}" var="p">
               <p:panelGrid columns="2">
                  <cust:avatarOutput owner="#{p.user}" session="#{userSession}"/>
                  <p:panelGrid columns="1">
                     <h:outputText value="#{p.user.displayString}" />
                     <h:outputText value="#{p.user.name}" />
                  </p:panelGrid>
               </p:panelGrid>
            </p:dataList>
            </p:tab>
            <p:tab title="#{text['profile']}">
            <p:panelGrid columns="2" layout="grid">
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="name" value="#{text['name']}" />
                  <p:inputText id="name" value="#{manageOrgHierarchy.editOrg.nickName}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="phone" value="#{text['phone']}" />
                  <p:inputText id="phone" value="#{manageOrgHierarchy.editOrg.phone}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="address" value="#{text['address']}" />
                  <p:inputText id="address" value="#{manageOrgHierarchy.editOrg.address}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="city" value="#{text['city']}" />
                  <p:inputText id="city" value="#{manageOrgHierarchy.editOrg.city}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="state" value="#{text['state']}" />
                  <p:inputText id="state" value="#{manageOrgHierarchy.editOrg.state}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="postalCode" value="#{text['post.code']}" />
                  <p:inputText id="postalCode" value="#{manageOrgHierarchy.editOrg.postalCode}" />
               </p:panelGrid>
               <p:panelGrid columns="1" layout="grid">
                  <p:outputLabel for="country" value="#{text['address.country']}" />
                  <p:inputText id="country" value="#{manageOrgHierarchy.editOrg.country}" />
               </p:panelGrid>
            </p:panelGrid>
            <h:panelGroup>
               <p:commandButton      
                  value="#{text['cancel']}"
                  icon="fa fa-trash"
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.cancelEditOrg}" />
               <p:commandButton      
                  value="#{text['save']}"
                  icon="fa fa-save" 
                  process="@form"
                  update="@form"
                  action="#{manageOrgHierarchy.saveEditOrg}" />
            </h:panelGroup>
            </p:tab>
            <p:tab title="#{text['lessons']}"></p:tab>
            <p:tab title="#{text['reports']}"></p:tab>
         </p:tabView></div></div></div>
         </div>
        </h:form>
      </ui:define>
   </ui:composition>
</h:body>
</html>

1 个答案:

答案 0 :(得分:0)

这是由声明jquery.js库的菜单部分中不相关的javascript引起的。当我删除有问题的导入时,所有奇怪的Primefaces错误都消失了。似乎声明其他jquery库会干扰Primefaces代码。