Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/01/2011, 16:26
negro81
 
Fecha de Ingreso: febrero-2007
Mensajes: 111
Antigüedad: 17 años, 2 meses
Puntos: 0
Problema gordo selectOneRadio

Estoy haciendo prácticas de JSF y estoy desesperado ya que no se por donde meterle mano a este problema. Tengo 2 variables de sesion lista_preguntas y lista_respuestas, que corresponden a una serie de preguntas y respuestas que tengo para crear dinámicamente un test cuyas opciones de respuesta son radiobutton. Bien pues en la vista debo mostrar cada pregunta y para cada pregunta sus respuestas que las obtengo con unas clases de negocio que la recogen de una bbdd, sin problema. El problema es hacer esto dinámicamente con selectOneRadio que estoy ya que no sé lo que hacer, no sé ni formular la pregunta.

Aquí está parte del código del jsp

Código:
<c:forEach var="pregunta" items="${lista_preguntas}">
                            <tr>
                                <td><c:out value="${pregunta.pregunta}"/></td>

                            </tr>
                            <tr>
                                <td>
                                    <h:selectOneRadio value="#{preguntaBean.id}" >
                                         <f:selectItems value="#{preguntaBean.respuestas}"/>
                                    </h:selectOneRadio>
                               
                                </td>
                            </tr>
                                <tr><td><hr></td></tr>
                               
                        </c:forEach>

y aquí el código del Bean implicado

Código:
public class PreguntaBean {
    private int id;
   private int id_respuesta;
    private int tema;
    private String dificultad;
    private String pregunta;
   private List<SelectItem> respuestas;
    private Operaciones oper = new Operaciones();

    public PreguntaBean(){
        /*
        respuestas = new ArrayList<SelectItem>();
        //construimos el Array de respuestas
        ArrayList<RespuestaBean>  misRespuestas = oper.getRespuestas(id);
        for(RespuestaBean r:misRespuestas){
            respuestas.add(new SelectItem(r.getId(), r.getRespuesta()));

        }*/
    
    } //constructor sin parámetros
    public PreguntaBean(int id, int tema, String dificultad, String pregunta){
        this.id=id;
        this.tema=tema;
        this.dificultad=dificultad;
        this.pregunta=pregunta;
        
        respuestas = new ArrayList<SelectItem>();
        //construimos el Array de respuestas
        ArrayList<RespuestaBean>  misRespuestas = oper.getRespuestas(id);
        for(RespuestaBean r:misRespuestas){
            respuestas.add(new SelectItem(r.getId(), r.getRespuesta()));
        
        }
        
        
        
        
    }

    public List<SelectItem> getRespuestas(){ return respuestas; }
    public void setIdRespuesta(int id){ this.id_respuesta=id; }



    
    public void setId(int id){ this.id=id; }
    public int getId(){ return id; }
    public void setTema(int tema){ this.tema=tema; }
    public int getTema(){ return tema; }
    public void setDificultad(String dificultad){ this.dificultad=dificultad; }
    public String getDificultad(){ return dificultad; }
    public void setPregunta(String pregunta){ this.pregunta=pregunta; }
    public String getPregunta(){ return pregunta; }
Me da este error

Código:
javax.servlet.ServletException: Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(j_id_jsp_260299521_2).
Si alguien sabe qué puedo hacer por favor que me ayude. Muchas Gracias