Sou iniciante em JSF e estou com dúvidas de como carregar os dados do usuário. O escopo é de sessão. Eu tenho que utilizar listeners ?
Alguém pode me ajudar ? Agradeço…
Eu tenho que atribuir na mão os dados a sessão ou o controller faz issso ?
POJO:
public String executa() throws SQLException {
genericoDAO user = new genericoDAO(); // Chamo o controlador
user.getConnection();
if (user.pesquisa(this.login, this.senha) != null) {// Passo o Bean para
// o DAO persistir
System.out.println("Achou");
return "sucesso";
} else {
System.out.println("Não Achou");
return "falhou";
}
}
DAO para retornar os dados do POJO:
public Usuario pesquisa(String login,String senha) throws SQLException {
// prepared statement para inserção
PreparedStatement stmt = con
.prepareStatement("select id,login,senha from usuario where login = ? and senha = ?");
// seta os valores
stmt.setString(1, login);
stmt.setString(2, senha);
Usuario usuario = null;
ResultSet rs = stmt.executeQuery(); //Busca no banco os dados passados
if (rs.next()){
usuario = new Usuario(); //Encontrou no Banco, cria o objeto e retorna para a classe dominio
usuario.setId(rs.getString("id"));
usuario.setLogin(rs.getString("login"));
usuario.setSenha(rs.getString("senha"));
}
// executa
stmt.execute();
stmt.close();
return usuario;
}
O Login :
<f:view>
<h:form>
<h:panelGrid title="Login" border="1" columns="2" summary="Teste">
Login<h:inputText id="logLogin" value="#{usuario.login}" required="true" requiredMessage="Campo de preenchimento obrigatório"/>
Senha<h:inputSecret id="logSenha" value="#{usuario.senha}" required="true" requiredMessage="Campo de preenchimento obrigatório"/>
</h:panelGrid>
<h:commandButton value="Validar" action="#{usuario.executa}"></h:commandButton>
</h:form>
</f:view>
Como carregar os dados de sessão nesta página no outpulal ?
<f:view>
Logado!
<br>
<h:outputText></h:outputText>
</f:view>