我自己无法解决这个问题。这是一件事: 我的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。由于此错误,页面无法正确更新。可能会发生什么?