Boa tarde Galera estou encontrando o seguinte problema tenho a Jsp :
[code]<%@page pageEncoding=“Cp1252” contentType=“text/html; charset=Cp1252” %>
<%@taglib uri=“http://displaytag.sf.net” prefix=“display” %>
CDs
editar remover [/code]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)
pelo que eu vi o id não carrega ou seja na linha <display:column><a href="cd.editar.logic?cd.id=${cd.id}">editar</a></display:column>
a EL está com valor nulo e assim acaba gerando o erro eu ja testei com o codigo passando a id manualmente assim:<display:column><a href="cd.editar.logic?cd.id=${1}">editar</a></display:column>
e funcionou agora gostaria de saber por que ela não carrega a id se toda logica está correta
Está aqui a classe Cd.java que é o modelo e a logic
[code]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;
}
}
[/code]
[code]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 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;
}
}
[/code]
Se alguem puder me ajudar fico agradecido , muito obrigado !!!