JBoss Seam - Propriedade Gerenciada que não aparece na View[Resolvido]

1 resposta
felipeguerra

Caros amigos,

Estou tentando fazer algo simples, mas que no Seam está complicado. Quero apresentar uma propriedade(List) de uma determinada classe na tela, para assegurar que essa propriedade está populada, eu itero na classe e analiso o resultado (tudo ok), em seguida prossigo na navegação das minhas páginas...vejam:

Entidade
@Name("usuario")
@Entity
@Scope(ScopeType.SESSION)
@Table(name="tb_login", catalog="GDPerso", schema="dbo")
public class Usuario implements Serializable {

//várias coisas omitidas

	@ManyToMany(fetch=FetchType.EAGER)
	@JoinTable(name="tr_login_transacao", catalog="GDPerso", schema="dbo",
			joinColumns={@JoinColumn(nullable=false, name="idLogin", referencedColumnName="idLogin")},
			inverseJoinColumns={@JoinColumn(nullable=false, name="idTransacao", referencedColumnName="idTransacao")}
	)
        //mapeamento ok, inclusive a classe Menu. Do outro lado: @ManyToMany(mappedBy="menus")
	private List<Menu> menus = new ArrayList<Menu>();

}
SessionBean
@Name("usuarioBean")
@Stateful
@Scope(ScopeType.EVENT)
public class UsuarioBean implements IUsuarioBean {
        @SuppressWarnings("all")
	public String login() throws BusinessException {
		String navigation = null;
		
		try {
			Query query = this.entityManager.createQuery("from Usuario where nome=:nome and senha=:senha");
			
			query.setParameter("nome", usuario.getNome());
			query.setParameter("senha", usuario.getSenha());
			
			this.usuario = (Usuario) query.getSingleResult();
			
			Iterator<Menu> menux = this.usuario.getMenus().iterator();
			
	               //A iteração apresenta os resultados esperados...
			while(menux.hasNext()) {
				Menu m = menux.next();
				
				System.out.println(m.getId() + "     " + m.getDescricao());
			}
			
			navigation = "sucesso";
			
		}catch(NoResultException nre) {
			facesMessages.addFromResourceBundle("application.erro_usuario_senha_invalido", null);
			
		}catch(Exception e) {
			log.error("Ocorreu um erro na tentativa de login. - #0", e);
			throw new BusinessException(e);
		}
		return navigation;
	}
}
View
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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:f="http://java.sun.com/jsf/core"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:s="http://jboss.com/products/seam/taglib">
	
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
		<title><h:outputText value="#{messages['application.titulo']}" /></title>
		<link href="#{facesContext.externalContext.requestContextPath}/css/stilo_scp.css" rel="stylesheet" type="text/css" />
	</head>
	
	<body class="body">
		<ui:include src="header.xhtml" />
		<div id="menu">
                        /*
                         * Aqui apresenta 'true', e é por isso que não sei o que fiz de errado!
                        */
			#{empty usuario.menus}
			<ui:include src="menu.xhtml" />
		</div>
		<div id="corpo">
			<ui:insert name="corpo" />
		</div>
	</body>

</html>
Aguardo uma ajuda,

Abraço.

1 Resposta

felipeguerra

Onde estão os amigos que estudam o framework?

Edit: O burro aqui lembrou que existe @Out no Seam!!!

Criado 4 de março de 2009
Ultima resposta 5 de mar. de 2009
Respostas 1
Participantes 1