Pessoal, estou com o seguinte problema:
Estou aprendendo a criar projeto usando o Seam com o JbossTools e Jboss AS, então estou fazendo pequenos projetinhos pra eu me entender com ele.
Dessa vez estou criando um sisteminha de e-mail, tenho contatos e mensagens. cada mensagem possui um remetente(contato).
O problema é que quando passo o contato pela view ele dá esse erro:
/criarMensagem.xhtml @16,52 value="#{mensagem.remetente}": java.lang.IllegalArgumentException: argument type mismatch /criarMensagem.xhtml
O componente está esperando um obj Contato e eu passo um obj Contato pela view. No meu entendimento era pra funcionar… Estou fazendo algo errado?
Segue o código:
Mensagem
@Entity
@Name("mensagem")
@Table(name = "mensagem")
public class Mensagem implements Serializable{
private static final long serialVersionUID = 6049667375225998846L;
@Id
@GeneratedValue
private Long id;
@Temporal(TemporalType.TIMESTAMP)
private Date dt_registro;
@ManyToOne
@JoinColumn
private Contato remetente; //aqui entra o remetente
//resto do código
ContatoViewAction (gera a lista com os contatos) - está fazendo o papel dela numa boa…
@Stateful
@Name("contatoView")
@Scope(ScopeType.SESSION)
public class ContatoViewAction implements ContatoView {
@PersistenceContext
public EntityManager em;
@DataModel
List<Contato> contatos; //essa é a lista de contatos que a view carrega
A View
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:rich="http://richfaces.org/rich"
xmlns:s="http://jboss.com/products/seam/taglib"
template="/layout/template.xhtml">
<ui:define name="body">
<h:messages showDetail="true" />
<h:form>
<h:panelGrid columns="2">
<!-- aqui o problema -->
<h:outputText value="Remetente" />
<h:selectOneMenu value="#{mensagem.remetente}">
<s:selectItems value="#{contatos}" var="c" label="#{c.nome}"
noSelectionLabel="Selecione..." />
</h:selectOneMenu>
<!-- aqui o problema -->
<h:outputText value="Destinatário(s)" />
</h:panelGrid>
<rich:pickList value="#{mensagem.destinatarios}">
<s:selectItems value="#{contatos}" var="contato"
label="#{contato.nome}" />
</rich:pickList>
<h:panelGrid columns="2">
<h:outputText value="Assunto" />
<h:inputText value="#{mensagem.assunto}" />
<h:outputText value="Mensagem" />
<rich:editor value="#{mensagem.texto}" />
<h:commandButton action="#{contatoMsgEditor.create}" value="Enviar" />
<h:commandButton action="/criarEmail.xhtml" value="Cancelar" />
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>