Conversão de objetos entre classes[RESOLVIDO]  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
Silveira.Marcelo
Debugger

Membro desde: 28/01/2009 20:09:15
Mensagens: 66
Offline

Olá pessoal.

Estou trabalhando em um módulo de meu projeto, onde ocorre o seguinte problema:


Estou querendo popular um <h:dataTable></h:dataTable> em minha view JSF, onde seleciono um dado de um lista já persistida em meu Entity Bean Assunto.java, e como tenho um contexto de conversação, tenho acesso ao action Listener public void armarzenarDSI().


Ao clicar em cadastre-se, o novo usuário insere os seu dados pessoais e seleciona em um menu os assunto nas quais ele quer receber informações via e-mail. Selecionando um assunto qualquer em uma lista, ao clicar no botão inserir, ele popula uma lista de assutos List<Assunto> assuntos que é um atributo de DSI.java. Segue abaixo trecho do código que eu implementei.



Código no JSF dsi_edit.xhtml


Seleciona assunto em um lista:
-------
<h:selectOneMenu id="assuntosMenu" value="#{assuntoCategoriaManager.assunto}">
<!--Rederizada um item da lista de Assunto.java para passar como argumento para actionListener armazenarDSI()-->
<h:selectItem id="assuntoItem" value="#{assunto.nome} rendered="#{dsi.nome}"/>
</h:selectOneMenu>
<h:commandButton id="assunto" value="Inserir" action="#{usuarioManager.armazenarDSI(dsi.nome)}"/>
.....

Segue o código do método que está no Managed Bean UsuarioManager.java

public void armazenarDSI(Assunto assunto){


//Set uma instância de Assunto passado pelo parâmetro do método
dsi.setAssunto(assunto)
//Se a lista de Assuntos de DSI for nula, então
if(dsi.getAssuntos() == null){
//Cria uma nova lista
dsi.setAssuntos(new ArrayList<Assuntos>());


}

//Adiciona um assunto a List<Assunto> assuntos da classe DSI.java
dsi.getAssuntos().add(assunto);


}//fim do metodo


Tudo segue bem até aqui, não ocorre um exception por passar um valor, o que acontece é que ao clicar no botão inserir da view dsi_edit.xhtml, me imprime uma mensagem que traduzindo me diz que o tipo assunto da classe entity Assunto não pode ser convertido para um tipo da classe java.lang.Boolean.

Esse meu projeto utiliza JSF, JBoss Seam e server JBoss AS 5.0.1 GA


Alguém já pegou esse erro e como faço para resolver.


Qualquer ajuda é válida

Grato.

Marcelo



.....

This message was edited 1 time. Last update was at 23/09/2009 11:19:27


Java Web Developer
Bacharel em Sistemas de Informação
Rumo a SCJP
[MSN]
Silveira.Marcelo
Debugger

Membro desde: 28/01/2009 20:09:15
Mensagens: 66
Offline

Silveira.Marcelo wrote:Olá pessoal.

Estou trabalhando em um módulo de meu projeto, onde ocorre o seguinte problema:


Estou querendo popular um <h:dataTable></h:dataTable> em minha view JSF, onde seleciono um dado de um lista já persistida em meu Entity Bean Assunto.java, e como tenho um contexto de conversação, tenho acesso ao action Listener public void armarzenarDSI().


Ao clicar em cadastre-se, o novo usuário insere os seu dados pessoais e seleciona em um menu os assunto nas quais ele quer receber informações via e-mail. Selecionando um assunto qualquer em uma lista, ao clicar no botão inserir, ele popula uma lista de assutos List<Assunto> assuntos que é um atributo de DSI.java. Segue abaixo trecho do código que eu implementei.



Código no JSF dsi_edit.xhtml


Seleciona assunto em um lista:
-------
<h:selectOneMenu id="assuntosMenu" value="#{assuntoCategoriaManager.assunto}">
<!--Rederizada um item da lista de Assunto.java para passar como argumento para actionListener armazenarDSI()-->
<h:selectItem id="assuntoItem" value="#{assunto.nome} rendered="#{dsi.nome}"/>
</h:selectOneMenu>
<h:commandButton id="assunto" value="Inserir" action="#{usuarioManager.armazenarDSI(dsi.nome)}"/>
.....

Segue o código do método que está no Managed Bean UsuarioManager.java

public void armazenarDSI(Assunto assunto){


//Set uma instância de Assunto passado pelo parâmetro do método
dsi.setAssunto(assunto)
//Se a lista de Assuntos de DSI for nula, então
if(dsi.getAssuntos() == null){
//Cria uma nova lista
dsi.setAssuntos(new ArrayList<Assuntos>());


}

//Adiciona um assunto a List<Assunto> assuntos da classe DSI.java
dsi.getAssuntos().add(assunto);


}//fim do metodo


Tudo segue bem até aqui, não ocorre um exception por passar um valor, o que acontece é que ao clicar no botão inserir da view dsi_edit.xhtml, me imprime uma mensagem que traduzindo me diz que o tipo assunto da classe entity Assunto não pode ser convertido para um tipo da classe java.lang.Boolean.

Esse meu projeto utiliza JSF, JBoss Seam e server JBoss AS 5.0.1 GA


Alguém já pegou esse erro e como faço para resolver.


Qualquer ajuda é válida

Grato.

Marcelo



.....





Pessoal consegui resolver este problema simplesmente inserindo a linha de comando:


Eu comento o código explicando tudo.

Um abraço comunidade.

Java Web Developer
Bacharel em Sistemas de Informação
Rumo a SCJP
[MSN]
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team