STRUTS validar usuário e senha e mostrar mensagem na mesma

2 respostas
S

Olá pessoal
Estou com um pequeno pronlema em struts, vou tentar explica-lo passo a passo:

Esse é meu struts-config.xml

//==============================STRUTS CONFIG.XML=======================================

Nelle eu retorno OK e continua a executar a aplicação mais meu problema não esse essa parte
está ok.

Meu problema é quando o usuário digita um usuário e senha que não esteja cadastrado,
retorna ERRO.

Vou exmplicar com mais detalhe o que já está pronto para resolver esse problema:

Nesse meu action ele executa uma methodo hamado :

[color=red]userDAO.ValidaUsuario, esse methodo retorna
uma string ele retorna ERRO para esse nosso caso ele faz correto, então esse retorno “ERRO” eu atualizo um campo chamado FLAG com o value ERRO no jsp,só não conseguir disparar a menssagem para o usuário informando que o usuário e senha digitado não foi encontrado esse é o meu problem.
apresentar menssagem eu já consigo mais só menssagem antes que ele faça submit da página, mais após fazer submit não estou conseguido fazer disparar mensagem.[/color]

[color=green] Para resolver o problema achei uma solução só que não me satisfiz:
Quando o usuário digitasse o usuário e senha errado e ele me retornasse ERRO
então eu chamaria um outro jsp informando que o usuário que não está cadastrao, mais não gostei dessa forma acho que o ideal é ele apresentar a menssagem de erro na mesma tela e não em outra.[/color]

Qualquer ajuda é bem vinda.

Grato

segue meu action e o methodo validausuario.

//===========================================ACTION======================================

package org.apache.struts.webapp.validator;

import java.util.*;

import java.util.Locale;

import javax.servlet.http.HttpSession;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.util.MessageResources;

import org.apache.struts.webapp.validator.UsuForm;

import dao.UsuarioDAO;

public final class ValidaUsuAction extends Action {

private Log log = LogFactory.getFactory().getInstance(this.getClass().getName());
public ActionForward execute(ActionMapping mapping,
             ActionForm form,
             HttpServletRequest request,
             HttpServletResponse response)
throws Exception {
	
// Extract attributes we will need
HttpSession session = request.getSession();
Locale locale = getLocale(request);
MessageResources messages = getResources(request);
UsuForm info = (UsuForm)form;
String action = request.getParameter("action");
String resultado = "success";
System.out.println("ola vou executar a consulta do usuário action ");
UsuarioDAO userDAO = new UsuarioDAO();
UsuForm infovo = new UsuForm();
//=======================METHODO VALIDAUSUARIO ==================================
String  status = userDAO.ValidaUsuario(request.getParameter("usuario").toUpperCase(), request.getParameter("senha").toUpperCase());
info.setFlag(status);


return mapping.findForward(status);


}

}

//=================================METHODO DAO ===============================================
public String ValidaUsuario(String usu, String sen){

String SQL = "select usuario, senha from usuario WHERE USUARIO = ? AND SENHA = ?";
  		PreparedStatement ps = null;  	        
		ResultSet rs = null;
		String v_status = "ERRO S";
		String v_usu = "", v_sen = "";
  	try {
		super.recuperaConexaoPool();
		ps = con.prepareStatement(SQL);
		ps.setString(1,usu);
		ps.setString(2,sen);		
		rs = ps.executeQuery();
		while(rs.next()){
  			v_usu = rs.getString(1);
  			v_sen = rs.getString(2);
		}   
		if (v_usu.trim().toUpperCase().equals(usu) && v_sen.trim().toUpperCase().equals(sen)){
		   v_status = "OK";
  	    }  
        ps.close();
        con.close();
        
  		
	} catch (Exception e) {
		System.err.println("Exception: " + e.getMessage());
	} finally {
		
	}
	return v_status; //pesquisa;  
}

[color=orange][/color][color=red][/color][color=blue][/color]

2 Respostas

D

Vc pode usar JavaScrip para verificar se o usuário existe ou não. Vc pode usar o struts para dar um reload pra própria página caso o usuário não exista. Vc pode tbm quando for direcionado para página erro e der o reload pra própria página setar uma variável e daí dentro do jsp verificar se essa variável existe daí se não existir fazer aparecer mensagem, usuário inexistente. Algo desse tipo.

Adriana

Kleber_Santos

qdo postar codigo, coloque-o entre as tags [ code] e [ /code], assim ele ficará endentado.

Criado 24 de junho de 2005
Ultima resposta 24 de jun. de 2005
Respostas 2
Participantes 3