estoy haciendo un pequeño ejercicio en j2ee con el framework ZK y tengo un problema a la hora de seleccionar un elemento, tengo el siguiente código:
Código zk:
Ver original
<?page title="Administradores"?> <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit"?> <zk> <window id="win" title="CD'S DISPONIBLES" border="none" apply="practicaDSController.CDController"> <listbox model="@{win$composer.allCDs}" selectedItem="@{win$composer.currentCD.titulo }"> <listhead> <listheader label="Título" sort="auto" /> </listhead> <listitem self="@{each='cd'}"> <listcell label="@{cd.titulo}" /> </listitem> </listbox> <groupbox> <caption label="carrito de compra"/> Título: <textbox value="@{win$composer.currentCD.titulo}"/> <button id="buyButton" label="BUY" /> </groupbox> </window> </zk>
en teoría todo esta bien y tal como tengo puesto selectedItem debería de cogerme el ítem seleccionado pero cuando pincho sobre uno me da este error.
java.lang.NoSuchMethodException: cds.CD: no method called titulo for [class cds.CD]
la verdad no se xq me da este error os pongo también el código del controller que utilizo
Código java:
Ver original
public class CDController extends GenericForwardComposer { private static final long serialVersionUID = 1L; Vbox altaCDbox; Vbox bajaModCDbox; Vbox pistasbox; Button verpistasbutton; Button buyButton; private CD currentCD = new CD(); private CDDAO dao = new CDDAO(); public void setCurrentArtista(CD currentCD) { this.currentCD = currentCD; } public CD getCurrentCD() { return currentCD; } public List<CD> getAllCDs(){ return dao.findAll(); }
y el de la entidad cd
Código java:
Ver original
package cds; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import pistas.Pista; import artistas.Artista; public class CD { private Artista art; private Set<Pista> listaPista; @Id @GeneratedValue return id; } this.id = id; } return titulo; } this.titulo = titulo; } @ManyToOne public Artista getArt() { return art; } public void setArt(Artista art) { this.art = art; } @OneToMany(targetEntity=Pista.class, fetch = FetchType.EAGER, mappedBy = "cd", cascade=javax.persistence.CascadeType.ALL) public Set<Pista> getListaPista() { return listaPista; } private void setListaPista(Set<Pista> listaPista) { this.listaPista = listaPista; } public void addPista (Pista pista){ this.listaPista.add(pista); /*if (pista.getCD() != this){ pista.setCD(this); }*/ } }
gracias por la posibles respuestas