Validação de usuário

21 respostas
C

Olá pessoal, estou com um problema com o VRaptor 3, estou fazendo uma tela de login, mas na hora de chamar o método que fazer a validação dá erro. Vou postar a classe que faz a validação:
[color=blue]
@Resource
public class IndexController {

private final Result result;
private UsuarioDao dao;
private Validator validator;
private UsuarioWeb usuarioWeb;



public IndexController(Result result, Validator validator){
	this.result = result;
	this.validator = validator;

}

@Get
@Path("/index/index")
public void index() {
	result.include("variable", "Usuario  Controller");
}

@Get
@Path("/index/novo")
public void novo() {
	
}

@Get
@Path("/index")
public void salvar(Usuario usuario) {
result.use(Results.page()).forward("/index/lista");
}


@Get 
@Path("/")
public void loginForm() {
	
}

@Get
@Path("/index/login")
public void login(Usuario usuario){
	
	Session session = null;
	try{
		session = new HibernateUtil().getSession();
	}catch(HibernateException he){
		he.printStackTrace();
	}
	
	dao = new UsuarioDao(session);
	Usuario carregado = dao.carrega(usuario);
	
	if (carregado == null) {
		validator.add(new ValidationMessage("Login e/ou senha inválidos", "usuario.login"));
	}
	
	validator.onErrorUse(Results.page()).of(IndexController.class).loginForm();
	this.usuarioWeb = new UsuarioWeb();
	usuarioWeb.login(carregado);
	result.redirectTo(IndexController.class).lista();
}

    @Get
@Path("/index/lista")
public List<Usuario> lista() {
	Session session = null;
	List<Usuario> usuarios;
	try{
		session = new HibernateUtil().getSession();
	}catch(HibernateException he){
		he.printStackTrace();
	}
	usuarios = new UsuarioDao(session).listaTodos();
	session.close();
	return usuarios;
}

}
[/color]
Por favor, alguém poderia me ajudar???
Desde já agradesço…

Abraço.

21 Respostas

L

Cara, antes de postar algum tópico, dá uma olhadinha nesse link.

Coloca o que for código dentro das tags Code. Isso facilita a leitura e, consequentemente, facilita na resolução do seu problema!

Flws!

L

qual erro?

C

Cara valeu, vou dar uma olhada…
Até…

C

Valeu cara, vou dar uma olhada…
Ate…

C

Cara o erro é 404, página nao encontrada…
Abraço.

L

como vc tá chamando o método (qual URL)? Vc tá fazendo isso via form ou via link? o Form tá com method=POST?

C

O meu jsp esta assim:
[color=blue]

Efetue o login Login:

Senha:

Logar [/color]

ele deveria chamar outro jsp:
[color=blue]

Efetuar Login
Olá, ${usuarioWeb.nome }! ">Logout Você não está logado. ">Login ">Cadastre-se
</div>
...
</div>
[/color]
que dai sim chamaria o método:

[color=blue]<a class="mention" href="/u/get">@Get</a>

<a class="mention" href="/u/path">@Path</a>("/index/login")

public void login(Usuario usuario){
Session session = null;
	try{
		session = new HibernateUtil().getSession();
	}catch(HibernateException he){
		he.printStackTrace();
	}
	
	dao = new UsuarioDao(session);
	Usuario carregado = dao.carrega(usuario);
	
	if (carregado == null) {
		validator.add(new ValidationMessage("Login e/ou senha inválidos", "usuario.login"));
	}
	
	validator.onErrorUse(Results.page()).of(IndexController.class).loginForm();
	this.usuarioWeb = new UsuarioWeb();
	usuarioWeb.login(carregado);
	result.redirectTo(IndexController.class).lista();
} [/color]
L

o erro está no form:

<form action="/index/login" method="get" >
isso remove o context-path da URL... a requisição fica algo como localhost:8080/index/login... qdo deveria ser localhost:8080/seu_contexto/index/login... o jeito certo de fazer é usar algo pra deixar relativo ao contexto, por exemplo a tag c:url:
<form action="<c:url value="/index/login"/>" method="get" >

PS: mande seus códigos entre [code] e [/ code] (sem o espaço)

C

Cara amanha cedo vou testar isso lá na empresa, mas deve ser isso…
Muito obrigado mesmo.
Abraço.

C

Bom dia, tudo bom?

Ainda nao deu certo a tela de login. Eu fiz o que vc falou, mas ai aparece esse trecho de código na página jsp: " method=“get”> e quando clico no botao logar dá esse erro:
[color=blue]type Status report

message

descriptionThe requested resource () is not available.
[/color]

nao sei o que esta errado.

L

Parece um erro de posicionamento de tags ou de aspas.

Você pode mostrar como ficou o jsp? (usando [code] e [/ code])

L

vc colocou a declaração da taglib core no jsp?

C

Sim…
Nao sei oq tem

L

manda seu form então, só a primeira linha

C

<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>
<%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %>

Efetuar Login " method="get" >

Obrigado pela atenção…

L

coloca:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

no começo do arquivo

C

Resolveu um erro, mas igual nao redicionou para a outra página. Acho que minha hierarquia de páginas que esta errado. Vou tentar ver isso amanha. Mas serrá pode ser isso?

L

talvez... manda o que tiver acontecendo qdo vc fizer os testes... e por favor coloca os códigos entre [code] e [/ code]

C

O meu eclipse bicho… Vou arrumar ele e vou ajeitar a estrutura do meu projeto, depois te falo se deu certo ou oq deu… blz?

Mas muito obrigado pela ajuda…

C

Bom dia,

eu mudei toda a estrutura do meu src e web-inf, agora nao funciona nem os links que estao no index. Quando clico no link “Novo Usuário” que esta meu index, retorna uma página com esse erro:
[color=blue]org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘usuarioController’ defined in file [C:\Arquivos de programas\Java\glassfishv3\glassfish\domains\domain1\eclipseApps\login\WEB-INF\classes\br\com\caelum\vraptor\controller\UsuarioController.class]: Unsatisfied dependency expressed through constructor argument with index 1 of type [br.com.caelum.vraptor.dao.UsuarioDao]: : No unique bean of type [br.com.caelum.vraptor.dao.UsuarioDao] is defined: Unsatisfied dependency of type [class br.com.caelum.vraptor.dao.UsuarioDao]: expected at least 1 matching bean; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [br.com.caelum.vraptor.dao.UsuarioDao] is defined: Unsatisfied dependency of type [class br.com.caelum.vraptor.dao.UsuarioDao]: expected at least 1 matching bean [/color].
É um erro mostro mesmo kkk…

Tem alguma ideia do que pode ser?

L

o UsuarioDao está anotado com @Component? se não estiver, anote-o

Criado 22 de fevereiro de 2010
Ultima resposta 25 de fev. de 2010
Respostas 21
Participantes 4