Fórum Growl Primefaces #527616
03/08/2015
0
Estou criando uma tela de login e estou com dificuldade de informar a mensagem de erro caso o usuário esteja incorreto. Na senha consigo normalmente.
Com o método abaixo retorno a tela que quero caso o usuário e senha estejam corretos. Caso contrário deveria-se retornar para a mesma tela de login e informar uma mensagem de erro.
Quando o usuário coloca a senha incorreta a mensagem aparece, mas quando ele informa o usuário incorreto a mensagem não é exibida.
Alguém já poderia me ajudar.
Abaixo coloquei o xhtml.
public String returnLogin(){
EntityManager manager = getManager();
Query q = manager.createQuery("select u from User u where u.login = :login");
q.setParameter("login", getUser().getLogin());
User user2 = (User) q.getSingleResult();
boolean logged = false;
if(user2.getLogin().equals(getUser().getLogin())){
if(user2.getPassword().equals(getUser().getPassword()))
logged = true;
}
else{
logged = false;
}
if(logged == true)
return "/form-principal.xhtml";
else{
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("Erro", "Login Inválido"));
return "/login.xhtml";
}
}<h:form>
<p:growl id="growl" showDetail="true" sticky="true" />
<p:panel id="panel-login" header="Login" style="margin-bottom: 10px">
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="user" value="User"/>
<p:inputText id="user" required="true" value="#{loginMB.user.login}"/>
<h:outputLabel for="password" value="Password"/>
<p:password id="password" required="true" value="#{loginMB.user.password}"/>
<p:commandButton value="Enter" update="panel-login, growl" action="#{loginMB.returnLogin}"/>
</h:panelGrid>
</p:panel>
</h:form>Paulo Henrique
Curtir tópico
+ 0Posts
03/08/2015
Ronaldo Lanhellas
public String returnLogin(){
EntityManager manager = getManager();
Query q = manager.createQuery("select u from User u where u.login = :login");
q.setParameter("login", getUser().getLogin());
User user2 = (User) q.getSingleResult();
boolean logged = false;
if(user2.getLogin().equals(getUser().getLogin()) && user2.getPassword().equals(getUser().getPassword())){
logged = true;
}
if(logged == true)
return "/form-principal.xhtml";
else{
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("Erro", "Login Inválido"));
return "/login.xhtml";
}
}
Depois dessa melhoria, tira o "return /login.xhml" apenas para certificar-se que a mensagem está sendo mostrada corretamente.
Gostei + 0
04/08/2015
Paulo Henrique
Obrigado pela ajuda mas ainda continua apenas mostrando a mensagem quando informo a senha errada. Quando o usuário está incorreto não acontece nada.
Gostei + 0
06/08/2015
Ronaldo Lanhellas
public String returnLogin(){
EntityManager manager = getManager();
Query q = manager.createQuery("select u from User u where u.login = :login");
q.setParameter("login", getUser().getLogin());
User user2 = (User) q.getSingleResult();
boolean logged = false;
if(user2.getLogin().equals(getUser().getLogin()) && user2.getPassword().equals(getUser().getPassword())){
logged = true;
}
System.out.println("logged = "+logged);
if(logged == true)
return "/form-principal.xhtml";
else{
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("Erro", "Login Inválido"));
return "/login.xhtml";
}
}
Gostei + 0
06/08/2015
Ronaldo Lanhellas
public String returnLogin(){
EntityManager manager = getManager();
Query q = manager.createQuery("select u from User u where u.login = :login");
q.setParameter("login", getUser().getLogin());
User user2 = (User) q.getSingleResult();
boolean logged = false;
if(user2.getLogin().equals(getUser().getLogin()) && user2.getPassword().equals(getUser().getPassword())){
logged = true;
}
System.out.println("logged = "+logged);
if(logged == true)
return "/form-principal.xhtml";
else{
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("Erro", "Login Inválido"));
return "/login.xhtml";
}
}
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)