Foros del Web » Programación para mayores de 30 ;) » Java »

selectedItem

Estas en el tema de selectedItem en el foro de Java en Foros del Web. hola 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 ...
  #1 (permalink)  
Antiguo 26/04/2012, 04:39
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
selectedItem

hola

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
  1. <?page title="Administradores"?>
  2. <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit"?>
  3. <zk>
  4.  
  5. <window id="win" title="CD'S DISPONIBLES" border="none" apply="practicaDSController.CDController">
  6.             <listbox model="@{win$composer.allCDs}" selectedItem="@{win$composer.currentCD.titulo }">
  7.                 <listhead>
  8.                     <listheader label="Título" sort="auto" />
  9.                    
  10.                 </listhead>
  11.                 <listitem self="@{each='cd'}">
  12.                     <listcell label="@{cd.titulo}" />
  13.                 </listitem>
  14.             </listbox>
  15.            
  16.             <groupbox>
  17.                 <caption label="carrito de compra"/>
  18.                 Título: <textbox value="@{win$composer.currentCD.titulo}"/>
  19.                 <button id="buyButton" label="BUY" />
  20.             </groupbox>
  21.             </window>
  22.  
  23. </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
  1. public class CDController extends GenericForwardComposer {
  2.    
  3.     private static final long serialVersionUID = 1L;
  4.     Vbox altaCDbox;
  5.     Vbox bajaModCDbox;
  6.     Vbox pistasbox;
  7.     Button verpistasbutton;
  8.     Button buyButton;
  9.    
  10.     private CD currentCD = new CD();
  11.     private CDDAO dao = new CDDAO();
  12.    
  13.     public void setCurrentArtista(CD currentCD) {
  14.         this.currentCD = currentCD;
  15.     }
  16.     public CD getCurrentCD() {
  17.         return currentCD;
  18.     }
  19.    
  20.     public List<CD> getAllCDs(){
  21.         System.out.println(dao.findAll());
  22.         return dao.findAll();
  23.     }

y el de la entidad cd

Código java:
Ver original
  1. package cds;
  2.  
  3. import java.util.HashSet;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6. import java.util.Set;
  7.  
  8. import javax.persistence.Column;
  9. import javax.persistence.Entity;
  10. import javax.persistence.FetchType;
  11. import javax.persistence.GeneratedValue;
  12. import javax.persistence.Id;
  13. import javax.persistence.JoinColumn;
  14. import javax.persistence.ManyToOne;
  15. import javax.persistence.OneToMany;
  16. import javax.persistence.Table;
  17.  
  18. import pistas.Pista;
  19.  
  20. import artistas.Artista;
  21.  
  22. public class CD {
  23.     private Long id;
  24.     private String titulo;
  25.     private Artista art;
  26.     private Set<Pista> listaPista;
  27.  
  28.     @Id
  29.     @GeneratedValue
  30.     public Long getId() {
  31.         return id;
  32.     }
  33.     public void setId(Long id) {
  34.         this.id = id;
  35.     }
  36.  
  37.     public String getTitulo() {
  38.         return titulo;
  39.     }
  40.     public void setTitulo(String titulo) {
  41.         this.titulo = titulo;
  42.     }
  43.    
  44.  
  45.        
  46.     @ManyToOne
  47.     public Artista getArt() {
  48.         return art;
  49.     }
  50.    
  51.     public void setArt(Artista art) {
  52.         this.art = art;
  53.        
  54.     }
  55.    
  56.    
  57.     @OneToMany(targetEntity=Pista.class, fetch = FetchType.EAGER, mappedBy = "cd", cascade=javax.persistence.CascadeType.ALL)
  58.     public Set<Pista> getListaPista() {
  59.         return listaPista;
  60.     }
  61.    
  62.     private void setListaPista(Set<Pista> listaPista) {
  63.         this.listaPista = listaPista;
  64.     }
  65.    
  66.     public void addPista (Pista pista){
  67.         this.listaPista.add(pista);
  68.         /*if (pista.getCD() != this){
  69.             pista.setCD(this);
  70.         }*/
  71.     }
  72. }


gracias por la posibles respuestas
  #2 (permalink)  
Antiguo 26/04/2012, 05:45
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: selectedItem

En entiendo tu framework pero por el error me atrevería a decir que está mal tu sintaxis, ya que el compilador piensa que es un método lo que estás intentado acceder y no un atributo.
__________________
BadProgrammerException!
  #3 (permalink)  
Antiguo 26/04/2012, 05:45
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: selectedItem

titulo es private, por lo que no puedes llamarlo desde fuera de la clase, que es lo que haces en la JSP.

Utiliza getTitulo()

Edito: Bueno, realmente creo que FiruzzZ está en lo cierto, no sé si ZK busca automáticamente los get como otros frameworks.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 27/04/2012, 04:16
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: selectedItem

al final era un error de sintaxis, en selectedItem tenia puesto esto:
selectedItem="@{win$composer.currentCD.titulo }

y en realidad es así:
selectedItem="@{win$composer.currentCD },

gracias por vuestro aporte xq gracias a el pude fijarme en ese pequeño detalle que se me paso mil veces muchas gracias

Etiquetas: selecteditem, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:51.