Caros amigos da GUJ, sou iniciante em programação web, estou utilizando jsf 2.0 e estou com o seguinte problema.
Nas minhas regras de navegação definidas no Faces-Config utilizo o recurso coloquei a String no e tudo funciona super bem, ele me redireciona de uma página para outra, as funcionalidades do sistema (métodos) funcionam perfeitamente, o real problema é o fato dele não mostrar minha mensagem de sucesso. Fiz alguma pesquisas e li algo sobre usar FlashScope para solucionar o problema, voltar para o padrão do JSF o “forward”, enfim … Segue abaixo o código do UsuárioBean, e Faces-Config.
Desde já, agradeço a todos que puderem ajudar a mostrar minha mensagem .
UsuarioBean.
package ManagedBeans;
import java.io.Serializable;
import java.util.List;
import hibernateUtil.EntityManagerUtil;
import javax.faces.application.FacesMessage;
import javax.faces.bean.*;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceException;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.MatchMode;
import entidadesJPA.Empregado;
import entidadesJPA.Usuario;
@SuppressWarnings("deprecation")
@SessionScoped
@ManagedBean(name="usuarioBean")
public class usuarioBean implements Serializable{
/**
*
*/
private static final long serialVersionUID = -5122478651631648714L;
Usuario usuario;
private String texto;
Empregado empregado;
int bloqueia;
String matricula;
String senhaConfirmacao;
FacesContext context = FacesContext.getCurrentInstance();
Usuario usuarioSelecionado;
private EntityManager entityManager;
List<Usuario> listaUsuario;
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String preparaAdicionarUsuario(){
usuario = new Usuario();
matricula = "";
limparSenhas();
bloqueia = 0;
return "novoUsuario";
}
public String prepararAlterarUsuario(){
usuario = usuarioSelecionado;
matricula = usuarioSelecionado.getEmpregado().getMatricula();
limparSenhas();
bloqueia = 1;
return "editarUsuario";
}
public String visualizarUsuario(){
usuario = usuarioSelecionado;
return "visualizarUsuario";
}
public String cancelarEditarUsuario(){
usuario=usuarioSelecionado;
return "listarUsuario";
}
public Usuario getUsuarioSelecionado() {
return usuarioSelecionado;
}
public void setUsuarioSelecionado(Usuario usuarioSelecionado) {
this.usuarioSelecionado = usuarioSelecionado;
}
public void setListaUsuario(List<Usuario> listaUsuario) {
this.listaUsuario = listaUsuario;
}
public String excluirUsuario(){
Usuario usuarioTemp = usuarioSelecionado;
EntityTransaction transation = getEntityManager().getTransaction();
try{
transation.begin();
getEntityManager().remove(usuarioTemp);
transation.commit();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Usuario", "Deletado com Sucesso!"));
return "";
}catch (Exception e) {
e.printStackTrace();
transation.rollback();
return "editarUsuario";
}
}
public String adicionarUsuario() {
EntityTransaction transation = getEntityManager().getTransaction();
try{
if(usuario.getSenha().equals(senhaConfirmacao)){
transation.begin();
getEntityManager().persist(usuario);
transation.commit();
preparaAdicionarUsuario();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Usuario", "Salvo com Sucesso!"));
return "listarUsuario";
}else{
limparSenhas();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Usuario", "Senhas Diferentes!"));
return "";
}
}catch (PersistenceException pe) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Usuario", "Usuário Já Cadastrado!"));
preparaAdicionarUsuario();
return "";
}catch (Exception e) {
e.printStackTrace();
return "novoUsuario";
}
}
public String alterarUsuario(){
EntityTransaction transation = getEntityManager().getTransaction();
try{
if(usuario.getSenha().equals(senhaConfirmacao)){
transation.begin();
getEntityManager().merge(usuario);
transation.commit();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Usuario", "Alterado com Sucesso!"));
return "visualizarUsuario";
}else{
limparSenhas();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Usuario", "Senhas Diferentes!"));
return "";
}
}catch (Exception e) {
e.printStackTrace();
transation.rollback();
}
return "editarUsuario";
}
@SuppressWarnings("unchecked")
public List<Usuario> getListaUsuario() {
listaUsuario = getEntityManager().createQuery("FROM Usuario").getResultList();
return listaUsuario;
}
public EntityManager getEntityManager() {
if(entityManager==null){
entityManager = EntityManagerUtil.getInstance().createEntityManager();
}
return entityManager;
}
public void buscarUsuario(){
Session session = (Session) getEntityManager().getDelegate();
Criteria criteria = session.createCriteria(Empregado.class);
criteria.add(Expression.like("matricula", matricula,MatchMode.ANYWHERE));
usuario.setEmpregado((Empregado)criteria.uniqueResult());
}
public void limparSenhas(){
usuario.setSenha("");
senhaConfirmacao = "";
}
public Empregado getEmpregado() {
return empregado;
}
public void setEmpregado(Empregado empregado) {
this.empregado = empregado;
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public String getSenhaConfirmacao() {
return senhaConfirmacao;
}
public void setSenhaConfirmacao(String senhaConfirmacao) {
this.senhaConfirmacao = senhaConfirmacao;
}
public int getBloqueia() {
return bloqueia;
}
public void setBloqueia(int bloqueia) {
this.bloqueia = bloqueia;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
}
Faces-Config
<!-- ###############################
USUÁRIO -->
<navigation-rule>
<navigation-case>
<from-outcome>novoUsuario</from-outcome>
<to-view-id>/cosanpa/usuario/novoUsuario.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<navigation-case>
<from-outcome>editarUsuario</from-outcome>
<to-view-id>/cosanpa/usuario/editarUsuario.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<navigation-case>
<from-outcome>listarUsuario</from-outcome>
<to-view-id>/cosanpa/usuario/listarUsuario.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<navigation-case>
<from-outcome>visualizarUsuario</from-outcome>
<to-view-id>/cosanpa/usuario/visualizarUsuario.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>