Olá, pessoal. Sou novo por aqui. Estou estudando JSF e estou tendo dificuldades.
Tenho um sistema básico onde após fazer o login, é possível atualizar os dados do usuário logado.
Só que estou tentando abrir a tela de edição de dados com os dados atuais do usuário pré-carregados nos campos, mas os valores destes campos não estão sendo exibidos, embora estejam sendo carregados na minha bean.
Segue a minha bean:
public class AtualizaDadosBean {
protected Usuario usuario;
public AtualizaDadosBean() {
}
public Usuario getUsuario() {
return usuario;
}
public String carregaDadosTela() {
try {
//Busca na sessão o usuário logado
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
if (session.getAttribute("usuario") != null) {
usuario = (Usuario) session.getAttribute("usuario");
}
return "success";
} catch (Exception e) {
e.printStackTrace();
return "fail";
}
}
}
Ao fazer login, eu jogo na sessão uma instância de Usuário contendo todos os dados do usuário.
Daí no método carregaDadosTela() eu pego da sessão esta instância e atribuo ao atributo “usuario”.
O meu objeto Usuario contém os métodos get e set dos atributos.
Na minha página, busco os valores dos campos da seguinte forma:
<h:inputText id="nome" value="#{atualizaDadosBean.usuario.nome}"/>
Não sei se pode ser algo errado no mapeamento no meu faces-config.xml. Segue parte do conteúdo do meu faces-config.xml:
<faces-config>
<managed-bean>
<managed-bean-name>atualizaDadosBean</managed-bean-name>
<managed-bean-class>beans.AtualizaDadosBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-action>#{atualizaDadosBean.carregaDadosTela}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/pages/atualizar.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
</faces-config>
Conforme dito, a tela de edição de dados aparece, mas os campos estão todos em branco quando na verdade deveriam aparecer carregados…
Alguém poderia me dar uma ajuda?
Muito obrigado de antemão.