An Error Occurred: A ID de componente cadastro:nome já foi encontrada na visualização

14 respostas
J

Ola amigos, alguem sabe me dizer como resulver esse erro ?

An Error Occurred:
A ID de componente cadastro:nome já foi encontrada na visualização.
+ Stack Trace
+ Component Tree
+ Scoped Variables

Quando eu clico para expandir, eu recebo mais informações

Stack Trace
Stack Trace

java.lang.IllegalStateException: A ID de componente cadastro:nome já foi encontrada na visualização.
	at com.sun.faces.util.Util.checkIdUniqueness(Util.java:821)
	at com.sun.faces.util.Util.checkIdUniqueness(Util.java:805)
	at com.sun.faces.util.Util.checkIdUniqueness(Util.java:805)
	at com.sun.faces.util.Util.checkIdUniqueness(Util.java:805)
	at com.sun.faces.application.view.StateManagementStrategyImpl.saveView(StateManagementStrategyImpl.java:144)
	at com.sun.faces.application.StateManagerImpl.saveView(StateManagerImpl.java:133)
	at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:418)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.br.joaoleno.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:29)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)
Component Tree
Component Tree

<UIViewRoot id="j_id1" inView="true" locale="pt_BR" renderKitId="HTML_BASIC" rendered="true" transient="false" viewId="/usuario.xhtml">

    <?xml version="1.0" encoding="ISO-8859-1" ?>

    <html xmlns="http://www.w3.org/1999/xhtml">

    <UIOutput id="j_idt4" inView="true" rendered="true" transient="false">

        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> <title>Cadastro de Usuários</title>

    </UIOutput>

    <UIOutput id="j_idt6" inView="true" rendered="true" transient="false">

        <h1>Cadastro de Usuários</h1> <hr/>

        <HtmlForm enctype="application/x-www-form-urlencoded" id="cadastro" inView="true" prependId="true" rendered="true" submitted="false" transient="false">

            <HtmlMessages globalOnly="false" id="j_idt8" inView="true" layout="list" redisplay="true" rendered="true" showDetail="false" showSummary="true" tooltip="false" transient="false"/>

            <!--O campo idUsuario e estatus estão ocultos -->

            <HtmlInputHidden id="j_idt10" immediate="false" inView="true" localValueSet="false" rendered="true" required="false" transient="false" valid="true"/>

            <HtmlInputHidden id="j_idt11" immediate="false" inView="true" localValueSet="false" rendered="true" required="false" transient="false" valid="true"/>

            <HtmlPanelGrid border="-[telefone removido]" columns="2" id="j_idt12" inView="true" rendered="true" transient="false">

                <HtmlOutputLabel escape="true" for="nome" id="j_idt13" inView="true" rendered="true" transient="false" value="Nome.: "/>

                <HtmlInputText disabled="false" id="nome" immediate="false" inView="true" label="Nome" localValueSet="false" maxlength="45" readonly="false" rendered="true" required="true" requiredMessage="Digite seu nome." size="45" transient="false" valid="true"/>

                <HtmlOutputLabel escape="true" for="email" id="j_idt14" inView="true" rendered="true" transient="false" value="E-mail.: "/>

                <HtmlPanelGroup id="j_idt15" inView="true" rendered="true" transient="false">

                    <HtmlInputText disabled="false" id="email" immediate="false" inView="true" label="E-mail" localValueSet="false" maxlength="70" readonly="false" rendered="true" required="true" requiredMessage="Por favor digite seu e-mail" size="70" transient="false" valid="true" validatorMessage="E-mail inválido"/>

                </HtmlPanelGroup>

                <HtmlSelectOneMenu disabled="false" id="idioma" immediate="false" inView="true" localValueSet="false" readonly="false" rendered="true" required="false" transient="false" valid="true">

                    <UISelectItem id="j_idt16" inView="true" itemDisabled="false" itemEscaped="true" itemLabel="Português" itemValue="pt_BR" noSelectionOption="false" rendered="true" transient="false"/>

                    <UISelectItem id="j_idt17" inView="true" itemDisabled="false" itemEscaped="true" itemLabel="English" itemValue="en_US" noSelectionOption="false" rendered="true" transient="false"/>

                    <UISelectItem id="j_idt18" inView="true" itemDisabled="false" itemEscaped="true" itemLabel="Espanol" itemValue="es_ES" noSelectionOption="false" rendered="true" transient="false"/>

                </HtmlSelectOneMenu>

                <HtmlOutputLabel escape="true" for="senha" id="j_idt19" inView="true" rendered="true" transient="false" value="Senha.: "/>

                <HtmlInputSecret disabled="false" id="nome" immediate="false" inView="true" label="Nome" localValueSet="false" maxlength="15" readonly="false" redisplay="true" rendered="true" required="true" size="15" transient="false" valid="true"/>

                <HtmlOutputLabel escape="true" for="confSenha" id="j_idt20" inView="true" rendered="true" transient="false" value="Confirmar Senha.: "/>

                <HtmlInputSecret disabled="false" id="nome" immediate="false" inView="true" label="Nome" localValueSet="false" maxlength="15" readonly="false" redisplay="true" rendered="true" required="true" size="15" transient="false" valid="true"/>

                <HtmlCommandButton action="#{usuarioBean.salvar}" actionExpression="#{usuarioBean.salvar}" disabled="false" id="j_idt21" immediate="false" inView="true" readonly="false" rendered="true" transient="false" type="submit" value="Salvar"/>

            </HtmlPanelGrid>

        </HtmlForm>

        <hr/>

    </UIOutput>

    </html>

</UIViewRoot>
Scoped Variables
- Scoped Variables
Request ParametersName	Value
None
View AttributesName	Value
None
Request AttributesName	Value
None
Flash AttributesName	Value
None
Session AttributesName	Value
None
Application AttributesName	Value
csfcff	com.sun.faces.context.flash.ELFlash@1128ee5

14 Respostas

J

O meu formulario, estar assim.:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Cadastro de Usuários</title>
</h:head>
<h:body>
<h1>Cadastro de Usuários</h1>
<hr/>
  <h:form id="cadastro">
    <h:messages/>
    <!--O campo idUsuario e estatus estão ocultos -->
    <h:inputHidden value="#{usuarioBean.usuario.idUsuario}"/>
    <h:inputHidden value="#{usuarioBean.usuario.estatus}"/>
    <h:panelGrid columns="2">
		<h:outputLabel value="Nome.: " for="nome" />
                <h:inputText id="nome" label="Nome" value="#{usuarioBean.usuario.nome}" size="45" maxlength="45" required="true" requiredMessage="Digite seu nome.">
                <f:validateLength minimum="7" maximum="45"></f:validateLength>
                </h:inputText>

                <h:outputLabel value="E-mail.: " for="email" />
                <h:panelGroup>
                    <h:inputText id="email" label="E-mail" value="#{usuarioBean.usuario.email}" size="70" maxlength="70" required="true" validatorMessage="E-mail inválido" requiredMessage="Por favor digite seu e-mail">
                        <f:validateRegex pattern="[a-zA-Z0-9\-\_\.]+@[a-zA-Z0-9\-\_\.]+"> </f:validateRegex>
                </h:inputText>
                </h:panelGroup>
                
                <h:selectOneMenu id="idioma" value="#{usuarioBean.usuario.idioma}">
                    <f:selectItem itemValue="pt_BR" itemLabel="Português"/>
                    <f:selectItem itemValue="en_US" itemLabel="English"/>
                    <f:selectItem itemValue="es_ES" itemLabel="Espanol"/>
                </h:selectOneMenu>
                
                <h:outputLabel value="Senha.: " for="senha" />
                <h:inputSecret id="nome" label="Nome" value="#{usuarioBean.usuario.senha}" size="15" maxlength="15" required="true" redisplay="true"/>
 
                <h:outputLabel value="Confirmar Senha.: " for="confSenha" />
                <h:inputSecret id="nome" label="Nome" value="#{usuarioBean.confirmarSenha}" size="15" maxlength="15" required="true" redisplay="true"/>
                <h:commandButton action="#{usuarioBean.salvar}" value="Salvar"/>
                   
	</h:panelGrid>	
  </h:form>
<hr/>
</h:body>
</html>
H

Olha a mensagem de erro:

A ID de componente cadastro:nome já foi encontrada na visualização.
Em algum momento você está passando dois componentes com o ID nome. Procure direitinho no seu código que você vai encontrar.

J

jakefrog , é mesmo tem um monte com o mesmo ID, vou trocar pra ve se funciona.

J

jakefrog, era exatamente isso meu caro!!!

agora quando eu clico no botao, da esse outro erro

An Error Occurred:
/usuario.xhtml @15,62 value="#{usuarioBean.usuario.idUsuario}": Target Unreachable, identifier 'usuarioBean' resolved to null
+ Stack Trace
+ Component Tree
+ Scoped Variables

eu acho que é por que eu não mapiei no faces-config, já que o netbeans não gera. Sabe como resolver ?

obrigado!

H
joaolenosi:
jakefrog, era exatamente isso meu caro!!!

agora quando eu clico no botao, da esse outro erro

An Error Occurred:
/usuario.xhtml @15,62 value="#{usuarioBean.usuario.idUsuario}": Target Unreachable, identifier 'usuarioBean' resolved to null
+ Stack Trace
+ Component Tree
+ Scoped Variables

eu acho que é por que eu não mapiei no faces-config, já que o netbeans não gera. Sabe como resolver ?

obrigado!

Coloque as anotações na classe do MB. ^^
Aqui tem um tutorial: JSF - Hello World, AutoComplete

J

Beeleza vou da uma olhada agorinha mesmo, muito obrigado.

J

jakefrog , fiz conforme o tutorial, mais mesmo assim ainda não funcionou. Acho que sei qual é o problema.
Se você olhar a mensagem quando eu clico no botao @15,62 value="#{usuarioBean.usuario.idUsuario}" ele não estar conseguindo achar idUsuario, é tanto que eu dou ctrl + espaço e não localizo no auto complete, e quando o meu arquivo xml, começa o primeiro dado, que ele pega é o id

An Error Occurred:
/usuario.xhtml @15,62 value="#{usuarioBean.usuario.idUsuario}": Target Unreachable, identifier 'usuarioBean' resolved to null
+ Stack Trace
+ Component Tree
+ Scoped Variables
<h:inputHidden value="#{usuarioBean.usuario.idUsuario}"/>
    <h:inputHidden value="#{usuarioBean.usuario.estatus}"/>
H

Não mano, se você olha a mensagem de erro ele fala que seu ManagedBean está null:

Target Unreachable, identifier ‘usuarioBean’ resolved to null
As anotações estão as mesmas? Os mesmo imports?

J

não sei por que estar ocorrendo isso, minha class managedbean, estar correta.

H

joaolenosi:
não sei por que estar ocorrendo isso, minha class managedbean, estar correta.
Então veja c você criou o projeto corretamente. Se os JARs do JSF foram adicionados corretamente.

Desculpe, mas não sei como fazer isso no netbeans.

Boa sorte aí.

J

jakefrog , as anotações estão as mesmas, olhe minha class bean!!

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.br.joaoleno.web;

/**
 *
 * @author Joao Leno
 */

import javax.faces.bean.*;
import javax.faces.context.FacesContext;
import com.br.joaoleno.usuario.Usuario;
import com.br.joaoleno.usuario.UsuarioRN;
import javax.faces.application.FacesMessage;

@ManagedBean (name="usuario")
@RequestScoped



public class UsuarioBean {
    
    private Usuario usuario = new Usuario();
    private String confirmaSenha;
    
    public String novo(){
        usuario = new Usuario();
        usuario.setStatus(true);
        return "usuario";
    }

    public String salvar(){
        FacesContext context = FacesContext.getCurrentInstance();
        String senha = usuario.getSenha();      
        if(!senha.equals("confirmarSenha")){
            FacesMessage facesMessage = new FacesMessage("Confirmação de senha inválida.");
            context.addMessage(null, facesMessage);
            return null;
        }
        UsuarioRN usuarioRN = new UsuarioRN();
        usuarioRN.salvar(usuario);
        
        return "usuarioCadastrado";
    }
    
    public String getConfirmaSenha() {
        return confirmaSenha;
    }

    public void setConfirmaSenha(String confirmaSenha) {
        this.confirmaSenha = confirmaSenha;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    
    
}
J

jakefrog , eu não coloquei nenhum jar, no meu projeto não, o netbeans não gera a pasta lib, será que o problema tá relacionado com isso ?

J

criei manualmente o faces-config.xml, já que o netbeans não gera!

isso é válido ?

<?xml version="1.0" encoding="UTF-8" ?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> <managed-bean> <managed-bean-name>usuarioBean</managed-bean-name> <managed-bean-class>com.br.joaoleno.web.UsuarioBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config>

H

joaolenosi:
criei manualmente o faces-config.xml, já que o netbeans não gera!

isso é válido ?

<?xml version="1.0" encoding="UTF-8" ?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> <managed-bean> <managed-bean-name>usuarioBean</managed-bean-name> <managed-bean-class>com.br.joaoleno.web.UsuarioBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config>

Uma vez que você coloque anotação, ele deveria entender mesmo sem o arquivo.

Acho que é algo na estrutura do seu projeto. [=

Criado 2 de julho de 2012
Ultima resposta 2 de jul. de 2012
Respostas 14
Participantes 2