<%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %>
<%@taglib uri="http://displaytag.sf.net" prefix="display" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
<title></title>
</head>
<body>
<%@ include file="../menu.jsp" %>
<h1>CDs</h1>
<display:table name="${cds}" requestURI="cd.lista.logic">
<display:column property="id"/>
<display:column property="titulo" sortable="true"/>
<display:column property="artista" sortable="true"/>
<display:column property="genero"/>
<display:column><a href="cd.editar.logic?cd.id=${cd.id}">editar</a></display:column>
<display:column><a href="cd.remove.logic?cd.id=${cd.id}">remover</a></display:column>
</display:table>
</body>
</html>
Ela lista os itens que eu tenho no banco e me dá a opção por dois links de editar ou remover os itens , estou usando o vraptor e hibernate para fazer essa implementação o problema é que quando eu vou testar e clico em editar acontece o seguinte erro:
javax.servlet.ServletException: id to load is required for loading
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:69)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
<display:column><a href="cd.editar.logic?cd.id=${cd.id}">editar</a></display:column>
<display:column><a href="cd.editar.logic?cd.id=${1}">editar</a></display:column>
package br.com.lojavirtual.modelo;
import javax.persistence.*;
@Entity
public class Cd {
@Id
@GeneratedValue
private Long id;
private String titulo;
private String artista;
private String genero;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
}
package br.com.lojavirtual.logic;
import java.util.List;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import br.com.lojavirtual.dao.DaoFactory;
import br.com.lojavirtual.loja.DaoInterceptor;
import br.com.lojavirtual.modelo.Cd;
@Component
@InterceptedBy(DaoInterceptor.class)
public class CdLogic {
private final DaoFactory daofactory;
private Cd cd;
private List<Cd> cds;
public CdLogic(DaoFactory daofactory) {
this.daofactory = daofactory;
}
// formulario para adição
public void formulario() {
}
// formulario para edição
public void editar(Cd cd) {
// carrega os dados no banco para edição
this.cd = this.daofactory.getCdDao().procura(cd.getId());
}
// Adiciona um cd novo ou atualiza se for edição
public void armazena(Cd cd) {
this.daofactory.beginTransaction();
this.daofactory.getCdDao().atualiza(cd);
this.daofactory.commit();
}
// Remove cd
public void remove(Cd cd) {
this.daofactory.beginTransaction();
this.daofactory.getCdDao().remove(cd);
this.daofactory.commit();
}
// lista todos os cds
public void lista() {
this.cds = this.daofactory.getCdDao().listaTudo();
}
public Cd getCd() {
return cd;
}
public List<Cd> getCds() {
return cds;
}
}
