[Resolvido] Problema na implementação do MVC (Apostila Caelum FJ-21)

2 respostas
GabrielCardelli

Galera estou tendo dificuldades na implementação de um código da apostila.

O Código gera o seguinte erro:

Erro.... java.lang.InstantiationException

Pagina de Formulário:

<body>
	<form action="mvc" method="POST">
	
		Id: <input type="text" name="id" />
		Nome: <input type="text" name="nome" />
		Endereco: <input type="text" name="endereco" />
		Email: <input type="text" name="email" />
				<input type="hidden" name="business" value="AlteraContatoLogic" />
		<input type="submit" />
	
	</form>
</body>

ServletController mapeado como /mvc

package br.com.caelum.mvc;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ControllerServlet extends HttpServlet{
	
	
	protected void service(HttpServletRequest request , HttpServletResponse response) throws IOException,
	ServletException{
		
		
		String business = request.getParameter("business");
		System.out.println(business);
		String classname = "br.com.caelum.mvc." + business;
		
	
			
			try{
				
				Class clazz = Class.forName(classname);
				BusinessLogic businessLogic = (BusinessLogic) clazz.newInstance();
				businessLogic.execute(request, response);
			
				
			}catch(Exception e){
				throw new ServletException("A lógica de negócios causou uma exception!! ",e);
			}
		
		
	}
	
	
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,
	ServletException{
		
		
		
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException,
	ServletException{
		
		
	}
	

}

Minha classe

package br.com.caelum.mvc;

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

import br.com.caelum.dao.ContatoDAO;
import br.com.caelum.modelo.Contato;

public abstract class AlteraContatoLogic implements BusinessLogic {
	
	public void execute(HttpServletRequest request, HttpServletResponse response)throws Exception {
		
		
		System.out.println("Executando a Lógica de Redirecionamento...");
		Contato contato = new Contato();
		long id = Long.parseLong(request.getParameter("id"));
		contato.setId(id);
		contato.setNome(request.getParameter("nome"));
		contato.setEmail(request.getParameter("email"));
		contato.setEndereco(request.getParameter("endereco"));
		
		ContatoDAO dao = new ContatoDAO();
		dao.altera(contato);
		
		RequestDispatcher rd = request.getRequestDispatcher("/lista-elegante.jsp");
		rd.forward(request, response);
		
		System.out.println("Alterando Contato: " + contato.getNome());
		
		
	}
	

}

Minha Interface

package br.com.caelum.mvc;

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

public interface BusinessLogic {
	
	public abstract void execute(HttpServletRequest request , HttpServletResponse response) throws Exception;

}

Estou lendo a apostila caelum FJ-21 e os códigos se encontram no capitulo 13.

Abraço e obrigado desde já.

2 Respostas

MaiqueL

O Gabriel tu sabe o que ta dando errado cara

flws

Abraço,

GabrielCardelli

opa galera… já me ajudaram… eu que clikei errado qnd escolhi se queria implementar o metodo dai a classe ficou abstrata e eu não percebi

Abraço a todos

Obrigado Maiquel

Criado 11 de outubro de 2009
Ultima resposta 11 de out. de 2009
Respostas 2
Participantes 2