JSF - Duplicate Component Id

3 respostas
nicholas.bittencourt

Pessoal,

Estou tomando o erro do topico em um portlet que estou implementando usando JSF. Acontece que eu codigo nao apresenta erros a principio. Alguem pode me ajudar?

Código Fonte
<f:view>
<netuix:namingContainer id="nmEnquete">
	<h:graphicImage id="imgTopo" url="/imagens/prototipo_r23_c14.jpg"/><br/>
	<h:form id="enquete">		
		<h:outputLabel id="comentatioLabel" value="Comentário:"/>
		<custom:inputHtml id="votoHtml" value="#{enquetes.voto}" />
				
		<h:commandButton id="btnVotar" value="Votar" action="#{enquetes.votar}" rendered="#{!empty request.remoteUser}"/>
	</h:form>
	<h:graphicImage id="imgBaixo" url="/imagens/prototipo_r23_c17.jpg"/>
</netuix:namingContainer>
</f:view>
Árvore de Componentes
+id: j_id_id0i0
 type: javax.faces.component.UIViewRoot@166e70d
  +id: T400129421184969632046
   type: com.bea.portlet.adapter.faces.component.naming.NamingContainerComponent@cb158f
    +id: imgTopo
     type: javax.faces.component.html.HtmlGraphicImage@f487b2
    +id: j_id1
     type: javax.faces.component.html.HtmlOutputText@1f8f421
    +id: enquete
     type: javax.faces.component.html.HtmlForm@163bb22
      +id: comentatioLabel
       type: javax.faces.component.html.HtmlOutputLabel@92b5e4
      +id: votoHtml
       type: br.com.transpetro.faces.components.UIInputHtml@1e3a9c6
      +id: votoHtml
       type: br.com.transpetro.faces.components.UIInputHtml@19f42a1
      +id: btnVotar
       type: javax.faces.component.html.HtmlCommandButton@cf7387
    +id: imgBaixo
     type: javax.faces.component.html.HtmlGraphicImage@1a9dad9

3 Respostas

G

Nomes iguais … ok
Ids iguais … bad idea

+id: votoHtml type: br.com.transpetro.faces.components.UIInputHtml@1e3a9c6 +id: votoHtml type: br.com.transpetro.faces.components.UIInputHtml@19f42a1

nicholas.bittencourt

Se voce olhar bem o fonte, não existem componentes duplicados. Ele gera isso depois que faço um submit no form. É como se ele não reconhecesse o primeiro componente na árvore e adicionasse outro dinamicamente.

Já aconteceu isso com alguem?

nicholas.bittencourt

Ja descobri o problema… Ao implementar meu componente, eu sobrescrevi os metodos getId e setId, fazendo com que o JSF se perdesse ao verificar se o meu objeto ja estava na arvore.

Criado 23 de julho de 2007
Ultima resposta 24 de jul. de 2007
Respostas 3
Participantes 2