Login com Struts 2

10 respostas
J

Gente , estou com uma dúvida quanto ao arquivo struts.xml

O meu projeto , está rodando perfeitamente , porém quando eu adiciono esse arquivo ele gera o 404 !!.

Oque será que estou fazendo de errado?

O arquivo fica dentro da pasta SRC .

Ele não fica dentro de pacote algum .

Quem souber muito obrigado .

10 Respostas

Master.Abs

Cara veja se te ajuda http://www.vaannila.com/struts/struts-example/struts-hello-world-example-1.html, quando eu estava aprendendo struts eu tirei base desse site.
Flw

J

Dando uma olhada no link que você me passou pelo o que eu entendi , parece o struts.xml precisa estar dentro do pacote de action . ?

Correto?

J

Então creio que é isso , pois eu adicionei o struts.xml no projeto e dessa vez pelo menos consegui abrir as outras actions.

Porém a minha qu eu acabei de configurar no struts eu não abro!

Gera o 404 .

Eu tento acessar a action porém não dá certo .

<struts>
	<package name="default" extends="struts-default">
		<action name="tarefaForm">
			<result>/WEB-INF/content/formulario-tarefas.jsp</result>
		</action>
	</package>
</strut

Esse é o código do struts.xml , ele está na minha pasta de actions .

Eu tento acessar a action tarefaForm porém gera o 404 .

Alguém sabe me explicar o porque ??

Obrigado !

J

UP UP UP

Por favor gente , preciso de vcs. :confused:

J

UP UP UP

up

fabiofalci

Acontece alguma exception?

J

Então consegui resolver o problema parcialmente .

Agora está gerando o erro 500 . uma NullPointerExcpetion …

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException

br.com.cfr.jdbc.dao.UsuarioDAO.procura(UsuarioDAO.java:23)

br.com.cfr.action.LoginAction.login(LoginAction.java:20)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)

com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)

com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)

org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:270)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)

com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)

org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)

org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.22 logs.

não sei aonde .

package br.com.cfr.jdbc.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import br.com.cfr.jdbc.ConnectionFactory;
import br.com.cfr.jdbc.modelo.Usuario;

public class UsuarioDAO {

	private Connection connection;
	
	public UsuarioDAO() throws ClassNotFoundException{
		this.connection = new ConnectionFactory().getConnection();
	}
		
		

		public boolean procura(Usuario usuario) {
			
			  String name = usuario.getNome();  
		      String password = usuario.getSenha();  

	  		try {
	  		 Statement stmt = connection.createStatement();  
	  		 
	  		String sql = "select * from tabuser where name=? , password=?";  	
	  		
	  		ResultSet rs =  stmt.executeQuery(sql);  
	  		
	  		if (rs.next())
	  			return true;
			
	  		}catch (SQLException e){
	  			throw new RuntimeException(e);
	  		}
			return false;
		}  

	}
package br.com.cfr.action;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

import br.com.cfr.jdbc.dao.UsuarioDAO;
import br.com.cfr.jdbc.modelo.Usuario;

import com.opensymphony.xwork2.ActionContext;

public class LoginAction {

	private Usuario usuario;

	@Action(value = "login", results = {
			@Result(name = "ok", location = "menu.jsp"),
			@Result(name = "invalido", location = "formulario-login.jsp") })
	
	public String login() throws ClassNotFoundException {
		if (new UsuarioDAO().procura(usuario)) {
			ActionContext.getContext().getSession()
					.put("usuarioLogado", usuario);
			return "ok";
		}
		return "invalido";
	}
	
	public Usuario getUsuario() {
		return usuario;
	}
	
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
		}

}

e a JSP :

<html>
<body>
	<h2>Página de Login das Tarefas</h2>
	<form action="login" method="post">
	
		Login: <input type="text" name="usuario.login" /> 
		<br /> 
		
		Senha: <input type="password" name="usuario.senha" /> <br /> <input type="submit"
			value="Entrar nas tarefas" />
	</form>
</body>
</html>

Alguém por favor?

Acho que o meu método do dao está errado , porém não consigo arrumar …

ViniGodoy

POR FAVOR NÃO POSTE TÍTULOS USANDO LETRAS MAIÚSCULAS.
COMO VOCÊ PODE TER SENTIDO NESSE COMENTÁRIO, DÁ A IMPRESSÃO QUE ESTOU GRITANDO COM VOCÊ.

Marcio_Nogueira

faça o debug de sua aplicação para ver em que ponto está sendo gerado o null pointer. :wink:

L

(joaomarques)
Eu debuguei no UsuarioDAO, e deu erro na linha 23: String name = usuario.getNome();

eu dechei como comentario as duas linhas (23 e 24), e então gerou uma runtime exception…

obrigado!

Criado 24 de outubro de 2011
Ultima resposta 28 de out. de 2011
Respostas 10
Participantes 6