Editar produto no VRaptor 3 [Resolvido]

4 respostas
Guevara

Oi pessoal!
Estou seguindo a apostila fj-28 e empaquei no item 7.10, pois eu crio a lógica edita() e na mesma classe é criado o método edita() de retornar o id do produto, aí dá problema, estou recebendo o erro “There are two rules that matches the uri”, igual a este tópico: http://www.guj.com.br/posts/list/150084.java

Eu entendi que o método void é a lógica para chamar a página jsp chamada edita.jsp, mas o outro método tb se chama edita(), é ai que recebo o erro.
Deixei o projeto conforme está na apostila mas não consegui resolver essa questão, pelo tópico existente eu não entendi como o cara resolveu.

Valeu!

4 Respostas

Guevara

Putz! Descobri o que era, eu estava colocando no método de recuperação do ID do filme como Integer e só pode ser Long,o VRaptor não aceita o método edita() como Integer nem na classe ProdutoDAO e nem em ProdutoController.
Agora tô resolvendo o campo sinopse que está em “TextArea” no form e o campo gênero que está como DropDown, ambos não estão sendo carregados pelo método edita().
Abraço!

Guevara

Resolvi!

A caixa de seleção Dropdown da página edita.jsp ficou assim:

<li id="genero"><label class="description" for="element_8">G&ecirc;nero
	</label>
	<div><select class="element select medium" id="genero"
		name="filme.genero">
		<option value="" selected="selected">${filme.genero }</option>
		<option value="Document&aacute;rio">Document&aacute;rio</option>
		<option value="a&ccedil;&atilde;o">A&ccedil;&atilde;o</option>
		<option value="Drama">Drama</option>
		<option value="Com&eacute;dia">Com&eacute;dia</option>
		<option value="Romance">Romance</option>
		<option value="Terror">Terror</option>
		<option value="Suspense">Suspense</option>
		<option value="Infantil">Infantil</option>
		<option value="Musical">Musical</option>
		<option value="Policial">Policial</option>
		<option value="Policial">Aventura</option>
		<option value="Fic&ccedil;&atilde;o">Fic&ccedil;&atilde;o</option>
		<option value="Indefinido">Indefinido</option>
	</select></div>
	</li>

O Textarea ficou assim:

<li id="descricao"><label class="description" for="element_7">Sinopse
	</label>
	<div><textarea id="descricao" name="filme.descricao"
		class="element textarea large" rows="10" cols="1">${filme.descricao }</textarea></div>
	</li>

Alterei o charset das páginas JSP para ISO-8859-1, ficando o cabeçalho desta forma:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

Isso evita os caracteres estranhos ao gravar e recuperar dados do banco.

Fica ai a dica pra quem precisar.

Abraço!

Lucas_Cavalcanti

Guevara:
Putz! Descobri o que era, eu estava colocando no método de recuperação do ID do filme como Integer e só pode ser Long,o VRaptor não aceita o método edita() como Integer nem na classe ProdutoDAO e nem em ProdutoController.

o VRaptor aceita sim o edita como Integer… o que provavelmente estava acontecendo é que vc digitou errado o id:

@Path("/produtos/{id}")
public void edita(Integer id) {...} // isso funciona... se vc escreveu o id como Id ou ID ou iD não funcionaria
Guevara

Valeu Lucas!
Consegui aqui. =)
[]s

Criado 23 de janeiro de 2010
Ultima resposta 24 de jan. de 2010
Respostas 4
Participantes 2