Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

blacktrindade

Tratando erros

Recommended Posts

Bom dia pessoal estou desenvolvendo uma tela de login no Struts 2 MVC.

 

Estou com problema na validação do login:

 

Login:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>   
<%@ taglib uri="/struts-tags" prefix="s" %> 

<!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=UTF-8">
<title>Login</title>
</head>
<body>

Realize o Login abaixo:

<s:form namespace="/login" action="login" method="post">
	<s:actionerror/>
	<s:textfield name="login.usuario" type="text" label="Usuário:" ></s:textfield><br>
	<s:textfield name="login.senha" type="password" label="Senha:"></s:textfield><br>
	<s:submit value="Logar"></s:submit>
</s:form>

</body>
</html>

Configuração no inicio da LoginAction:

@ParentPackage("default")
@Namespace("/login")
@Results({
	@Result(name="ok", location="/index.jsp"),
	@Result(name="Erros", location="/login/login.jsp")
})

Validação:

@Action("login")
	public String login() {
		if(super.hasFieldErrors() ||  super.hasActionErrors()) {
			return "Erros";
		} else 
		return "ok";
	}
	
	public void validate(){
		if(getLogin().getUsuario() == null || 
				getLogin().getUsuario().equals("")){
			super.addFieldError("login.usuario", "Campo usuário Obrigatório");
		} if(getLogin().getSenha() == null || 
				getLogin().getSenha().equals("")){
			super.addFieldError("login.senha", "Campo senha é Obrigatório");
		}
		if(getLogin().getSenha() == null || 
				getLogin().getSenha().equals("") || getLogin().getUsuario() == null || getLogin().getUsuario().equals("")){
			super.addActionError("Usuário ou senha inválido");
		}
		if(!getLogin().getUsuario().equals("admin") && !getLogin().getSenha().equals("admin")){
			super.addActionError("Usuário ou Senha INCORRETO");
		}
		
	}

Bom o erro é o seguinte, quando o VALIDATE não pega nenhum erro, ele funciona corretamente e encaminha para a index.

 

Agora quando o VALIDADE em 1 dos 3 IF identifica erro, ai ele retorna a mensagem abaixo:

 

 

 

HTTP Status 404 - No result defined for action com.action.LoginAction and result input

type Status report

message No result defined for action com.action.LoginAction and result input

description The requested resource is not available.

Apache Tomcat/7.0.39

 

 

 

É como se eu não tivesse definido a ação do return "Erros" mas eu defini, alguém da uma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei o erro correção abaixo:

 

Configuração no inicio da LoginAction:

@ParentPackage("default")
@Namespace("/login")
@Results({
	@Result(name="ok", location="/index.jsp"),
	@Result(name="input", location="/login/login.jsp")
})

Validação:

@Action("login")
	public String login() {
		if(super.hasFieldErrors() ||  super.hasActionErrors()) {
			return "input";
		} else 
		return "ok";
	}
	
	public void validate(){
		if(getLogin().getUsuario() == null || 
				getLogin().getUsuario().equals("")){
			super.addFieldError("login.usuario", "Campo usuário Obrigatório");
		} if(getLogin().getSenha() == null || 
				getLogin().getSenha().equals("")){
			super.addFieldError("login.senha", "Campo senha é Obrigatório");
		}
		if(getLogin().getSenha() == null || 
				getLogin().getSenha().equals("") || getLogin().getUsuario() == null || getLogin().getUsuario().equals("")){
			super.addActionError("Usuário ou senha inválido");
		}
		if(!getLogin().getUsuario().equals("admin") && !getLogin().getSenha().equals("admin")){
			super.addActionError("Usuário ou Senha INCORRETO");
		}
		
	}

Tive que colocar o INPUT no return no lugar do Errors parece que é algo da nomenclatura do Strtus.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.