Ajuda com exercício da apostila da caelum fj21

9 respostas
R

Pessoal Boa tarde!

Estou com dificuldades em um exercicio da apostila da caelum, o 16.21 da apostila fj21, sobre adicionar ajax numa aplicação com o vraptor. Para isso eu teria que importar o jquery e utilizar ele para fazer a atualização da pagina, mas o browser nao esta encontrando o jquery, no firebug aparece esta mensagem:

"NetworkError: 404 Not Found - http://localhost:8081/controle-produtos/js/jquery-1.8.0.js"

Mas nao estou conseguindo encontrar o erro, uma vez que a biblioteca esta sim nesta pasta. Ola o meu lista.jsp, que é arquivo no qual eu estou usando o jquery para fazer a exclusao de um registro invocando o metodo remove da classe ProdutoController e para remover a tr da tabela tambem:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<!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=ISO-8859-1">
<script type="text/javascript"  src="<c:url value="/js/jquery-1.8.0.js"/>"> </script>
<title>Lista de Produtos</title>
</head>
<body>
	<script type="text/javascript">
 	function removeProduto(id){
 		alert("entrou remove produto lista");
 		$('#mensagem').load('<c:url value="/produto/remove"/>' + '?produto.id='+id);
 		$('#produto'+id).remove();
 		alert("entrou remove produto lista 2");
 	}
 </script>

	<h1>Produtos</h1>

	<div id="mensagem"></div>
	<table>
		<c:forEach var="produto" items="${produtoList}">
			<tr id="produto${produto.id }">
				<td>${produto.id }</td>
				<td>${produto.nome}</td>
				<td>${produto.preco}</td>
				<td>${produto.descricao}</td>
				<td><a href="#" onclick="return removeProduto(${produto.id})">
						Remover </a></td>
				<td><a
					href="<c:url value="/produto/alteraForm"/>?produto.id=${produto.id}">
						Alterar </a></td>
			</tr>
		</c:forEach>
	</table>

	<a href="<c:url value="/produto/formulario"/>">Adicionar Novo</a>
</body>
</html>

Agora vai o meu ProdutoController:

package br.com.doorey.controller;

import java.util.List;

import javax.swing.JOptionPane;



import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.doorey.dao.ProdutoDao;
import br.com.doorey.modelo.Produto;

@Resource
public class ProdutoController {
	private Result result;
	ProdutoDao produtoDao;
	
	public ProdutoController(Result result, ProdutoDao produtoDao){
		this.result = result;
		this.produtoDao = produtoDao;
	}
	
	public List<Produto> lista(){
		
		return new ProdutoDao().listaProdutos();
	}
	
	public void adiciona(Produto produto){
		produtoDao.adiciona(produto);
		result.redirectTo(ProdutoController.class).lista();
	}
	
	public void formulario(){
		
	}
	
	public void remove(Produto produto){
		produtoDao.remove(produto);
		System.out.println("Entrou produto controler");
	}
	
	public void alteraForm(Produto produto){
		
		produto = produtoDao.listaPorId(produto.getId());
		JOptionPane.showMessageDialog(null, produto.getNome());
		result.include("produto", produto);
		
	}
	
	public void altera(Produto produto){
		produtoDao.altera(produto);
		result.redirectTo(ProdutoController.class).lista();
	}
	
	
	
	
	
}

Nao sei o que esta acontecendo...Por favor me ajudem...

flw e desde ja obrigado

9 Respostas

R

Puxa pessoal!

ninguem vai arriscar mesmo? :smiley:

A

Já tentou dar uma olhada na estrutura que vai pro servidor? Pode ser que os javascripts não estejam lá, apenas no projeto.

R

Pessoal como faço para encontrar os arquivos que estao indo para o servidor?

D

Caro , rei_nl_ds

Como vc fez para conseguir usar a taglib do java…/jsp/jstl/core? pois estou tentando e parece que eclipse não enxerga a tag, e eu copiei o jar do jstl para dentro do meu projeto versão 1.2.1 tomcat 7.

sabe me dizer como posso driblar esse erro se souber é claro.

Att;

R

danillonc, Boa noite!

Vc tem que colocar os jars da jstl dentro da pasta lib do seu projeto, dai la no eclipse vc vai em build path >> add to build path.

Isso deve fazer funcionar! :wink:

E ai pessoal alguem sabe como faço para visualizar os arquivos que vao para o servidor?.. estou usando o tomcat

A

rei_nl_ds:
danillonc, Boa noite!

Vc tem que colocar os jars da jstl dentro da pasta lib do seu projeto, dai la no eclipse vc vai em build path >> add to build path.

Isso deve fazer funcionar! :wink:

E ai pessoal alguem sabe como faço para visualizar os arquivos que vao para o servidor?.. estou usando o tomcat

Depende do que está usando pra desenvolver.

Tente ao menos ir no Tomcat e ver se o aplicativo está dentro da pasta webapp.

R

Ja verifiquei e nao tem nada no webapps.

Estou usando o apache-tomcat-7.0.27 e o eclipse juno para .

Ataxexe, voce tem mais alguma ideia para resolver o meu problema?

grato.

R

Acabei de testar com o Glassfish e esta acontecendo o mesmo erro, é com se o jquery nao estivesse lá mesmo…

Sera que pode ter alguma coisa a ver alguma proteção de acesso direto que o vraptor utiliza?

P

[size=18]Feche a tag

depois da tabela [/size]

<div id="mensagem">
		<table border="2" cellspacing="5px" cellpadding="10px">
			<c:forEach var="produto" items="${produtoList}">
				
				<tr id="produto${produto.id}">
					<td>${produto.nome}</td>
					<td>${produto.preco}</td>
					<td>${produto.descricao}</td>
					<td>
						<fmt:formatDate pattern="dd/MM/yyyy"
							value="${produto.dataInicioVenda.time}" />

					</td>
					<td>
						<a href="#" onclick="return removeProduto(${produto.id})">Remover</a>
					</td>
					<td>
						<a href="<c:url value="/produto/formulario" />?produto.id=${produto.id}">Atualiza</a>
					</td>
				</tr>
			</c:forEach>
		</table>
	  </div>
Criado 21 de agosto de 2012
Ultima resposta 20 de nov. de 2012
Respostas 9
Participantes 4