找不到具有标识符问题的组件

时间:2012-10-13 03:55:56

标签: jsf-2 primefaces

我自己无法解决这个问题。这是一件事: 我的wep应用程序上有以下页面:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
            xmlns:f="http://java.sun.com/jsf/core"
            xmlns:h="http://java.sun.com/jsf/html"
            xmlns:p="http://primefaces.org/ui"
            template="./../../resources/templates/baseTemplate.xhtml">
<ui:define name="header">
    <!-- Configuração do idioma de exibição do scheduler -->
    <h:outputScript library="scripts" name="primefaces-locale.js"/>
</ui:define>
<ui:define name="content">
    <p:fieldset legend="Relatórios">
        <h:form id="frmRelatorios">

            <!-- Diálogo de status -->
            <p:ajaxStatus onstart="dlgStatus.show();" onsuccess="dlgStatus.hide();"/>
            <p:dialog modal="true" 
                      widgetVar="dlgStatus" 
                      header="Status" 
                      draggable="false" 
                      closable="false">
                <p:graphicImage value="#{resource['images/ajax-loader.gif']}" />
            </p:dialog>
            <p:messages id="mMessages" 
                        redisplay="false" />

            <p:panelGrid columns="2" 
                         styleClass="gridNoLine">
                <h:outputLabel value="Relatório: "/>
                <p:selectOneMenu id="somTiposRelatorios" 
                                 value="#{relatoriosBean.tipoRelatorioSelecionado}"
                                 required="true"
                                 requiredMessage="Selecione o tipo de relatório."
                                 effect="fade"
                                 widgetVar="somEventos"
                                 label="Tipo de relatório:">
                    <p:ajax listener="#{relatoriosBean.onSelectMenuChanged}"
                            update="opTipoPesquisa"/>
                    <f:selectItem itemLabel="Selecione um item..." itemValue=""/>
                    <f:selectItems value="#{relatoriosBean.tiposRelatorios}">
                    </f:selectItems>
                </p:selectOneMenu>
            </p:panelGrid>
            <p:outputPanel id="opTipoPesquisa">
                <p:panelGrid columns="2"
                             rendered="#{relatoriosBean.exibirPainelTipoPesquisa}"
                             styleClass="gridNoLine">
                    <h:outputLabel value="Pesquisar por:"/>
                    <p:selectOneRadio id="sorTipoPesquisa" 
                                      value="#{relatoriosBean.tipoPesquisa}">
                        <p:ajax update=":frmRelatorios:olTipoRelatorio"
                                listener="#{relatoriosBean.tipoPesquisaAlterado}"/>
                        <f:selectItem itemLabel="Nome" itemValue="1" />
                        <f:selectItem itemLabel="Data" itemValue="2" />
                    </p:selectOneRadio>
                    <h:outputLabel id="olTipoRelatorio" 
                                   value="#{relatoriosBean.tipoPesquisa}"/>
                </p:panelGrid>
            </p:outputPanel>
            <p:outputPanel id="opPainelPesquisaNome">
                <p:panelGrid columns="3"
                             styleClass="gridNoLine"
                             rendered="#{relatoriosBean.exibirPainelPesquisaNome}">
                    <h:outputLabel value="Pesquisar:" 
                                   for="itPesquisaEvento" />
                    <p:inputText id="itPesquisaEvento" 
                                 value="#{relatoriosBean.nomeEvento}"
                                 label="Nome do evento:"
                                 required="true"
                                 requiredMessage="Digite o nome do evento a ser pesquisado."/>

                </p:panelGrid>
            </p:outputPanel>
            <p:outputPanel id="opPainelPesquisaData" >
                <p:panelGrid columns="2" 
                             styleClass="gridNoLine"
                             rendered="#{relatoriosBean.exibirPainelPesquisaData}">
                    <h:outputLabel value="De:" for="cDataInicioPesquisa"/>
                    <p:calendar id="cDataInicioPesquisa"
                                value="#{relatoriosBean.dataInicioPesquisa}"
                                locale="pt" 
                                required="true"
                                requiredMessage="Selecione a data de início da pesquisa."
                                pattern="dd/MM/yyyy HH:mm"
                                stepMinute="10"
                                label="Data de início:">

                    </p:calendar>
                    <h:outputLabel value="Até:" for="cDataTerminoPesquisa"/>
                    <p:calendar id="cDataTerminoPesquisa"
                                value="#{relatoriosBean.dataTerminoPesquisa}"
                                locale="pt" 
                                required="true"
                                requiredMessage="Selecione a data de término da pesquisa."
                                pattern="dd/MM/yyyy HH:mm"
                                stepMinute="10"
                                label="Data de término">

                    </p:calendar>
                    <p:column rowspan="2" colspan="2">

                    </p:column>
                </p:panelGrid>
            </p:outputPanel>
        </h:form>
    </p:fieldset>
</ui:define>

以下是模板页面的代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:p="http://primefaces.org/ui"
  xmlns:f="http://java.sun.com/jsf/core">
<f:view id="vRoot">
    <h:head>
        <!-- Incluir Scripts e Folhas de Estilo comuns a todas as páginas do sistema -->
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />        
        <h:outputStylesheet library="css" name="default.css"/>
        <h:outputStylesheet library="css" name="cssLayout.css"/>
        <h:outputStylesheet library="css" name="rodape.css"/>
        <ui:insert name="header">
        </ui:insert>

        <title>SisEventos - Sistema de Gerenciamento de Eventos</title>
    </h:head>
    <h:body>


        <div class="estrutura">
            <!-- Topo -->
            <div class="top">  
            </div>
            <!-- Menu -->
            <div class="menu">
                <h:form id="frmMenu">
                    <p:menubar autoDisplay="true" >
                        <p:menuitem value="Home" icon="ui-icon-home" url="/paginas/home.xhtml" />
                        <p:submenu label="Manutenção" icon="ui-icon-person">    
                            <p:submenu label="Evento" >
                                <p:menuitem value="Gerenciar Evento" url="/paginas/administrativo/gerenciarEvento.xhtml" /> 
                                <p:menuitem value="Ger. Tipo de Evento" url="/paginas/administrativo/gerenciarTipoEvento.xhtml" /> 
                            </p:submenu>
                            <p:submenu label="Local" >
                                <p:menuitem value="Gerenciar Local" url="/paginas/administrativo/gerenciarLocal.xhtml" /> 
                                <p:menuitem value="Ger. Tipo de Local" url="/paginas/administrativo/gerenciarTipoLocal.xhtml" /> 
                            </p:submenu>
                            <p:menuitem value="Papel" url="/paginas/administrativo/gerenciarPapel.xhtml" />
                            <p:submenu label="Público" >
                                <p:menuitem value="Gerenciar Público" url="/paginas/administrativo/gerenciarPublico.xhtml" /> 
                                <p:menuitem value="Ger. Tipo de Público" url="/paginas/administrativo/gerenciarTipoPublico.xhtml" /> 
                            </p:submenu>
                            <p:submenu label="Serviço" >
                                <p:menuitem value="Gerenciar Serviço" url="/paginas/administrativo/gerenciarServico.xhtml" /> 
                                <p:menuitem value="Ger. Prestador de Serviço" url="/paginas/administrativo/gerenciarPrestadorServico.xhtml" /> 
                            </p:submenu>                      
                        </p:submenu> 

                        <p:submenu label="Atividades" > 
                            <p:menuitem value="Reservar Recursos" url="#" />
                            <p:menuitem value="Avaliar Solicitação de Recursos" url="#" /> 
                            <p:menuitem value="Alocar Recurso" url="#" /> 
                            <p:menuitem value="Cancelar Atividades" url="#" /> 
                        </p:submenu> 

                        <p:menuitem value="Relatórios" url="/paginas/administrativo/gerarRelatorios.xhtml" /> 

                        <p:submenu label="Evento" > 
                            <p:menuitem value="Notícias" url="#" /> 
                            <p:submenu label="Palestrantes" >
                                <p:menuitem value="Convidados" url="#" /> 
                                <p:menuitem value="Professores" url="#" /> 
                                <p:menuitem value="Alunos" url="#" />                    
                            </p:submenu>
                            <p:menuitem value="Serviços" url="#" />
                            <p:menuitem value="Imagens" url="#" />
                            <p:menuitem value="Localização" url="#" />
                        </p:submenu> 

                        <p:menuitem value="Contato" /> 
                    </p:menubar>
                </h:form>
            </div>
            <!-- Conteúdo -->
            <div class="left_content">
                <ui:insert name="content">
                </ui:insert>
            </div>
            <!-- Rodapé -->
            <div class="bottom">
                <div id="rodape"><br/>
                    CAMPUS - SEPN 707/907 Campus do CEUB - Asa Norte - Brasília - DF - CEP 70790-075 - 
                    Informações: +55 (61)3966-1200<br/>Copyright © 2012 UniCEUB. Todos os direitos reservados |
                    <a href="#">Condições de Uso</a> | <a href="#">Política de Privacidade</a>
                </div>
            </div>
        </div> 
    </h:body>
</f:view>

当我执行应用程序时,我在日志中收到以下错误:

GRAVE: Servlet.service() for servlet [FacesServlet] in context with path [/SisEventosv2] threw exception [Cannot find component with identifier "frmRelatorios:opPainelPesquisa" referenced from "frmRelatorios:somTiposRelatorios".] with root cause
javax.faces.FacesException: Cannot find component with identifier "frmRelatorios:opPainelPesquisa" referenced from "frmRelatorios:somTiposRelatorios".

但是如你所见,我没有在somTiposRelatorios中引用componente opPainelPesquisa。由于此错误,页面无法正确更新。可能会发生什么?

0 个答案:

没有答案