Pessoal,
Criei um formulário JSP para editar (alterar) dados de um objeto num uso com VRaptor. Infelizmente o formulário não esta recebendo os parametros do objeto setados na URI (via EL) pela lista.jsp para preencher os campos já no carregamento inicial do formulárioAtualiza.jsp.
Já alterei de diversas formas o EL mas sem sucesso.
As lógicas do CRUD estão funcionando.
Como resolver? O problema é no método do formulário no Controller?
Abaixo os códigos. Para simplificar, nestes códigos estou tentando pegar apenas o id para jogar no campo.
lista.jsp
<html>
<body>
<a href="<c:url value="/cap16-t09-e08/produto/formularioAdiciona"/>">Adicionar produto</a>
<table>
<c:forEach var="produto" items="${produtoList}">
<tr>
<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="<c:url value="/cap16-t09-e08/produto/remove"/>?produto.id=${produto.id}">Remover</a> </td>
<td><a href="<c:url value="/cap16-t09-e08/produto/formularioAtualiza"/>?produto.id=${produto.id}">Atualizar</a> </td>
</tr>
</c:forEach>
</table>
</body>
</html>
formularioAtualiza.jsp
<html>
<body>
<form action="<c:url value="/cap16-t09-e08/produto/atualiza"/>" />
Id: <input name="produto.id" value="${produto.id}" disabled="disabled"/> <br />
Nome: <input name="produto.nome" "/> <br/>
Descricao: <input name="produto.descricao" "/> <br/>
Preco: <input name="produto.preco" "/> <br/>
Data de inicio da venda: <caelum:campoData id="dataInicioVenda" name="produto.dataInicioVenda" /> <br/>
<input type="submit" name="Atualizar produto">
</form>
</body>
</html>
ProdutosController
@Resource
@Path("/cap16-t09-e08/produto")
public class ProdutoController {
private Result result;
public ProdutoController(Result result){
this.result = result;
}
//a ação adiciona
public void adiciona(Produto produto){
new ProdutoDAO().adiciona(produto);
result.redirectTo(ProdutoController.class).lista();
}
//a ação atualiza
public void atualiza(Produto produto){
new ProdutoDAO().atualiza(produto);
result.redirectTo(ProdutoController.class).lista();
}
//a ação remove
public void remove(Produto produto){
new ProdutoDAO().remove(produto);
result.redirectTo(ProdutoController.class).lista();
}
public List<Produto> lista(){
return new ProdutoDAO().lista();
}
public void formularioAdiciona(){
}
public void formularioAtualiza(){
}
}
