Duvida criar Página resultado Login

5 respostas
renanpto

Boa tarde pessoal, estou comecando a estudar sobre struts, e jsp…

E estou com uma duvida, criei uma pagina jsp q tem um login.

Entro com login e senha. o jsp chama a minha classe Action que verifica se o login é valido ou nao.

A duvida é q dependendo do resultado que vou montar a pagina de resposta.

Estava pensando ( idéia ) em gravar na seção o atributo loginValido, dai
quando for criar a pagina jsp de resposta avaliar este atributo. Só que pra fazer isso eu preciso de algum exemplo se alguem tiver algum para me mostrar Ou alguma outra dica…eu agradeço…

Ate :wink:

5 Respostas

Pedrosa

Eu tenho um exemplo mais ou menos assim:

/*
 * Created on Jun 20, 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package br.com.xpto.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.beanutils.BeanUtils;
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 br.com.xpto.struts.dao.LoginDAO;
import br.com.xpto.struts.form.LoginForm;
import br.com.xpto.struts.model.LoginBean;

/**
 * @author web35
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class LoginAction extends Action {

	public ActionForward execute(ActionMapping map, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		System.out.println("Algum usuario tentando logar");
		
		LoginForm formulario  = (LoginForm) form;
		LoginDAO login = new LoginDAO(); 
		
		if(!login.validaLogin(formulario)){
		
			return map.findForward("erro");
		
		}else{
		
			HttpSession session = request.getSession();
			LoginBean usuarios = new LoginBean();
			BeanUtils.copyProperties(usuarios,formulario);
			
			//joga usuario na sessão
			session.setAttribute("usuario",usuarios);
			return map.findForward("ok");
		}
		 
	}	

}

Onde no seu struts-config teria algo ± assim:

<action path="/login" type="br.com.xpto.struts.action.LoginAction" name="LoginForm">
			<forward name="erro" path="/erro.jsp"/>
			<forward name="ok" path="/ok.jsp"/>
</action>
lgi2020

Amigão, também estou começando a engatinhar neste assunto…

De qualquer forma, pelo que entendi, você está fazendo a validação do login do usuário dentro da Action. Pelo que tenho lido por aí, isso não deve ser feito dentro a Action.

Posta seu código aí pra galera entender melhor o que você está fazendo.
Depois, vou te mandar um exemplo que segui em um tutorial bem legalzinho…

Abração.

renanpto

public class LoginActionForm extends Action{

/** Creates a new instance of LoginActionForm */
public LoginActionForm() {
}

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    LoginForm loginForm = ( LoginForm ) form;
  // Aqui chamo direto a camada de persistencia para testar o acesso ao banco
   AbstractDAO abstractDAO = FactoryAbstractDAO.getAbstractDAO(EntidadesDAO.HSQL.toString());
   
   boolean loginTrue = abstractDAO.login( loginForm );
 
          
   return mapping.findForward( String.valueOf( loginTrue ));
}

}

renanpto

Pedrosa como você usa o bean no Jsp… ? e por que você utilizou esta linha “BeanUtils.copyProperties(usuarios,formulario);” ?

Pedrosa

Na verdade eu não uso faz tempo o Struts, mas é algo mais ou menos assim:

<bean:write>
Criado 18 de maio de 2007
Ultima resposta 18 de mai. de 2007
Respostas 5
Participantes 3