Boa noite! Pessoal procurei em vários fóruns, mas não encontrei algo simples, é do simples que se vai para o avançado.
meu projeto envolve, jsf, richfaces, persistence, annotations(crio as tabelas pela classe).
Criei um VO - usuario.java que contém usuario e senha.
criei um controller - usuarioControl.java para conseguir puxar os dados no jsf -login.jsp
mas não consigo redirecionar para a pagina que tera uma mensagem de boas vindas bemvindo.jsp.
alguem poderia me ajudar?
package loja;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Usuario {
@Id
private String nome;
private String password;
private boolean loginOk;
public String validateLogin(){
if(nome!=null && password!=null && !nome.equalsIgnoreCase(password)){
loginOk = true;
return "login";
}else return "login";
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isLoginOk() {
return loginOk;
}
public void setLoginOk(boolean loginOk) {
this.loginOk = loginOk;
}
}
package loja;
public class UsuarioControl {
private Usuario usuario = new Usuario();
private Usuario password = new Usuario();
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public Usuario getPassword() {
return password;
}
public void setPassword(Usuario password) {
this.password = password;
}
}
login
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
<f:view>
<h:form>
<h3>Por favor digite nome e senha.</h3>
<tr>
<td>Nome:</td>
<td><h:inputText value="#{usuarioControl.usuario}"></h:inputText>
</td>
</tr>
<tr>
<td>Senha:</td>
<td><h:inputSecret value="#{usuarioControl.password}"></h:inputSecret>
</td>
</tr>
<p>
<h:commandButton value="Login" action="#{ bemvindo.jsp}"></h:commandButton>
</p>
</h:form>
</f:view>
</body>
</html>
Já existe usuário e senha cadastrado no banco.
Hum, tente trocar essa linha
<h:commandButton value="Login" action="#{login.jsp}"></h:commandButton>;
por isso
<h:commandButton value="Login" action="#{login.validateLogin}"></h:commandButton>
e também
public String validateLogin(){
if(nome!=null && password!=null && !nome.equalsIgnoreCase(password)){
loginOk = true;
return "principal";//redireciona para a pagina principal
} else {
return "login";
}
}
Boa sorte
fiz como vc me indicou.
msg: sourceId=j_id_jsp_983533015_1:j_id_jsp_983533015_3[severity=(ERROR 2), summary=(Erro de conversão ao setar o valor ‘wel101270’ para ‘null Converter’.), detail=(Erro de conversão ao setar o valor ‘wel101270’ para ‘null Converter’.)]
sourceId=j_id_jsp_983533015_1:j_id_jsp_983533015_2[severity=(ERROR 2), summary=(Erro de conversão ao setar o valor ‘welder’ para ‘null Converter’.), detail=(Erro de conversão ao setar o valor ‘welder’ para ‘null Converter’.)]
weldermartins
Verifique se “principal” responde a sua pagina principal.
Vou te passar um exemplo melhor.
package loja;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Usuario {
@Id
private String nome;
private String password;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package loja;
public class UsuarioControl {
private String usuario;
private String password;
private boolean loginOk;
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isLoginOk() {
return loginOk;
}
public void setLoginOk(boolean loginOk) {
this.loginOk = loginOk;
}
public String validateLogin(){
if(usuario.equals("root") && password.equals("1234")){
loginOk = true;
return "principal";
}else return "login";
}
}
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
<f:view>
<h:form>
<h3>Por favor digite nome e senha.</h3>
<tr>
<td>Nome:</td>
<td><h:inputText value="#{usuarioControl.usuario}"></h:inputText>
</td>
</tr>
<tr>
<td>Senha:</td>
<td><h:inputSecret value="#{usuarioControl.password}"></h:inputSecret>
</td>
</tr>
<p>
<h:commandButton value="Login" action="#{usuarioControl.validateLogin}"></h:commandButton>
</p>
</h:form>
</f:view>
</body>
</html>
faces-config.xml
<managed-bean>
<managed-bean-name>usuarioControl</managed-bean-name>
<managed-bean-class>caminhoclasse.UsuarioControl</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<navigation-case>
<from-outcome>login</from-outcome>
<to-view-id>/login.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>principal</from-outcome>
<to-view-id>/principal.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
Boa sorte
Obrigado brother deu certo.
A senha é definida na aplicação, seria possível um exemplo que a aplicação fizesse a comparação usuário e senha que estão cadastradas no banco?
Desde já agradeço pela sua atenção.
abraço