Pessoal
To tentando pegar o usuario logado e depois alterar a senha do tal usuario…
Estou usando 2 classes p pegar esse usuario, as classe sao: ContextoBean e ContextoUtil.
To utuziliando o metodo buscarPorLogin(consulta hql) depois eu chamo o metodo atualizarSenha p fazer o update no objeto
encontrado pelo metodo buscarPorLogin… Meu problema eh: Eu nao estou acertando fazer a chamada desses 2 metodos…
Vou colar as classes aqui p ver se vcs podem me ajudar com esse problema…
package requisicao.web;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import requisicao.usuario.Usuario;
import requisicao.usuario.UsuarioRN;
@ManagedBean(name = "contextoBean")
@SessionScoped
public class ContextoBean {
private Usuario usuarioLogado = null;
public Usuario getUsuarioLogado() {
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext external = context.getExternalContext();
String login = external.getRemoteUser();
if (this.usuarioLogado == null || !login.equals(this.usuarioLogado.getLogin())) {
if (login != null) {
UsuarioRN usuarioRN = new UsuarioRN();
this.usuarioLogado = usuarioRN.buscarPorLogin(login);
//this.contaAtiva = null;
}
}
return usuarioLogado;
}
public void setUsuarioLogado(Usuario usuario) {
this.usuarioLogado = usuario;
}
}
package requisicao.util;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import requisicao.web.ContextoBean;
public class ContextoUtil {
public static ContextoBean getContextoBean() {
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext external = context.getExternalContext();
HttpSession session = (HttpSession) external.getSession(true);
ContextoBean contextoBean = (ContextoBean) session.getAttribute("contextoBean");
return contextoBean;
}
}
UsuarioDAOHibernate
...
public void atualizar(Usuario usuario) {
if (usuario.getPermissao() == null || usuario.getPermissao().size() == 0) {
Usuario usuarioPermissao = this.carregar(usuario.getCodigo()); this.session.update(usuario);
usuario.setPermissao(usuarioPermissao.getPermissao());
this.session.evict(usuarioPermissao);
}
}
public Usuario buscarPorLogin(String login) {
String hql = "select u from Usuario u where u.login = :login";
Query consulta = this.session.createQuery(hql);
consulta.setString("login", login);
//TODO mostrar primeiramente com o list e depois apresentar o uniqueResult
return (Usuario) consulta.uniqueResult();
}
...
public void salvar(Usuario usuario) {
this.session.save(usuario);
}
UsuarioBean
public String salvar() {
FacesContext context = FacesContext.getCurrentInstance();
String senha = this.usuario.getSenha();
if (!senha.equals(this.confirmarSenha)) {
FacesMessage facesMessage = new FacesMessage(
"A senha não foi confirmada corretamente");
context.addMessage(null, facesMessage);
return null;
}
SetorRN setorRN = new SetorRN();
UsuarioRN usuarioRN = new UsuarioRN();
this.usuario.setSetor(setorRN.buscarPorNome(this.setor));
usuarioRN.salvar(this.usuario);
return "this.destinoSalvar";
}
//estou tendo problemas com o metodo abaixo... N sei como vou fazer a chamada do metodo
public String atualizarSenha(){
ContextoBean contextoBean = ContextoUtil.getContextoBean();
FacesContext context = FacesContext.getCurrentInstance();
String senha = this.usuario.getSenha();
if (!senha.equals(this.confirmarSenha)) {
FacesMessage facesMessage = new FacesMessage(
"A senha não foi confirmada corretamente");
context.addMessage(null, facesMessage);
return null;
}
//Nao estou acertando fazer a chamada do metodo...
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.buscarPorLogin(contextoBean.getUsuarioLogado().getLogin());
return "this.destinoSalvar";
}
<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">
<ui:composition template="/templates/interna.xhtml">
<ui:define name="titulo">
Mudar senha
</ui:define>
<ui:define name="corpo">
<h:form id="cadastro">
<h:messages />
<br/>
<h:panelGrid columns="2">
<h:outputLabel value="Senha:" for="senha" />
<h:inputSecret id="senha" label="Senha"
value="#{usuarioBean.usuario.senha}" required="true" />
<h:outputLabel value="Confirmar Senha:" for="confirmarsenha" />
<h:inputSecret id="confirmarsenha" label="Confirmar Senha"
value="#{usuarioBean.confirmarSenha}" required="true" />
<h:commandButton action="#{usuarioBean.atualizarSenha}" value="Salvar" />
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
Entao pessoal, estou com serias dificuldades nessa parte…
Sou novo em desenvolvimento web, estou meio perdido com isso.
Espero q vcs possam me ajudar. Valeu 
