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

Problema gordo selectOneRadio

Estas en el tema de Problema gordo selectOneRadio en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/01/2011, 16:26
 
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

Etiquetas: jsp-servlets
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 20:49.