java Server Faces DataTable dinamico

Saludos....

Solicito su ayuda, para resolver una cuestion tecnica , aqui la situacion:

Estoy usando adf faces, con jdeveloper en la version 1.3.3., por ser hosting contratado no podemos migrar a jsf 1.2...

En jsf 1.2 puedo generar un datatable dinamico, en tiempo de ejecucion, pero al tratar de hacer lo mismo en jsf 1.1, no me muestra cosa alguna, aunque si realiza las operaciones para generar el datatable.... Adjunto codigo...

Pagina Web:

<afh:body>
      <h:form target="_self">
        <h:outputText value="Consulta de Registros del Modulo de Fiscalizacion y Control de Obligaciones"
                        style="font-weight:bolder; background:url(\'../imagenes/pleca_siigem_01.jpg\'); background-height:33px; "
                        styleClass="textCaja" escape="false"/>
        <br>
        <h:panelGrid columns="2" width="50%">
            <h:outputText value="Reporte"/>
            <h:selectOneListbox size="1"
                                value="#{bbReportes.tipoReporte}"
                                converter="javax.faces.Integer">
                <f:selectItems value="#{bbCatalogosFisc.catalogoEjercicio}"/>
            </h:selectOneListbox>

            <h:outputText value="Fecha Inicial"/>
          <af:selectInputDate  value="#{bbReportes.fechaInicial}"/>
         
          <h:outputText value="Fecha Final"/>
          <af:selectInputDate value="#{bbReportes.fechaFinal}"/>
         
          <h:commandButton value="Consultar" action="#{bbReportes.traeDatos}" id="btnConsultar"/>
            <h:outputText value=""/>
        </h:panelGrid>

      <!-- SALIDA DEL REPORTE -->
      <h:panelGroup binding="#{bbReportes.dynamicDataTableGroup}"  rendered="#{bbReportes.mostrar}" />
        <af:panelGroup rendered="#{bbReportes.mostrar}"
                       binding="#{bbReportes.divResultados}" partialTriggers="btnConusltar"/>
      </h:form>
     
     
    </afh:body>
  </afh:html>
</f:view>

ahora el managed bean:

       
public class frmReportes {

    private Date fechaInicial;
    private Date fechaFinal;
    private Integer tipoReporte;
    private Boolean mostrar;

    private HtmlPanelGroup dynamicDataTableGroup;
    private CoreTable btabla;
    private CoreColumn bcol;
    private CorePanelGroup divResultados; // Placeholder.

    public frmReportes() {
        fechaInicial = new Date(System.currentTimeMillis());
        fechaFinal = new Date(System.currentTimeMillis());
        tipoReporte = 0;
        mostrar = false;
    }

    /**
     * Genera el reporte segun el criterio del usuario.
     *
     * Primero dependiendo del criterio del usuario trae los datos de reporte.
     * Despues se genera la tabla, para ser mostrada.
     *
     * @return nada
     */

    public String traeDatos() {
        ArrayList datos = new ArrayList();
        daoCapturaDiaria dao = new daoCapturaDiaria();
        conexion con = new conexion();

        dao.setCon(con.ConectaIngresos());
        datos = dao.traeReporteCaja(fechaInicial, fechaFinal);

        // Create <h:dataTable value="#{myBean.dynamicList}" var="dynamicItem">.
        CoreTable dynamicDataTable = new CoreTable();
        dynamicDataTable.setValueBinding("value",
                                         createValueExpression("#{myBean.dynamicList}",
                                                               List.class));
        dynamicDataTable.setVar("dynamicItem");

        // Iterate over columns.
        //for (int i = 0; i < 4; i++) {

        // COLUMNA FECHA
        // Create <h:column>.
        CoreColumn column = new CoreColumn();
        dynamicDataTable.getChildren().add(column);

        // Create <h:outputText value="dynamicHeaders[i]"> for <f:facet name="header"> of column.
        HtmlOutputText header = new HtmlOutputText();
        header.setValue("FECHA");
        column.setHeader(header);

        // Create <h:outputText value="#{dynamicItem[" + i + "]}"> for the body of column.
        HtmlOutputText output = new HtmlOutputText();
        output.setValueBinding("value",
                               createValueExpression("#{dynamicItem.fecha}",
                                                     Date.class));
        column.getChildren().add(output);

        // COLUMNA FOLIO
        // Create <h:column>.
        column = new CoreColumn();
        dynamicDataTable.getChildren().add(column);

        // Create <h:outputText value="dynamicHeaders[i]"> for <f:facet name="header"> of column.
        header = new HtmlOutputText();
        header.setValue("FOLIO");
        column.setHeader(header);

        // Create <h:outputText value="#{dynamicItem[" + i + "]}"> for the body of column.
        output = new HtmlOutputText();
        output.setValueBinding("value",
                               createValueExpression("#{dynamicItem.folio}",
                                                     Integer.class));
        column.getChildren().add(output);

        // COLUMNA recibomosde
        // Create <h:column>.
        column = new CoreColumn();
        dynamicDataTable.getChildren().add(column);

        // Create <h:outputText value="dynamicHeaders[i]"> for <f:facet name="header"> of column.
        header = new HtmlOutputText();
        header.setValue("RECIBIMSO DE");
        column.setHeader(header);

        // Create <h:outputText value="#{dynamicItem[" + i + "]}"> for the body of column.
        output = new HtmlOutputText();
        output.setValueBinding("value",
                               createValueExpression("#{dynamicItem.recibimosde}",
                                                     String.class));
        column.getChildren().add(output);

        // COLUMNA FECHA
        // Create <h:column>.
        column = new CoreColumn();
        dynamicDataTable.getChildren().add(column);

        // Create <h:outputText value="dynamicHeaders[i]"> for <f:facet name="header"> of column.
        header = new HtmlOutputText();
        header.setValue("TOTAL");
        column.setHeader(header);

        // Create <h:outputText value="#{dynamicItem[" + i + "]}"> for the body of column.
        output = new HtmlOutputText();
        output.setValueBinding("value",
                               createValueExpression("#{dynamicItem.total}",
                                                     Double.class));
        column.getChildren().add(output);

        //}

        // Add the datatable to <h:panelGroup binding="#{myBean.dynamicDataTableGroup}">.
        dynamicDataTableGroup = new HtmlPanelGroup();
        dynamicDataTableGroup.getChildren().add(dynamicDataTable);
        mostrar = true;
       
        CorePanelGroup divResultados= new CorePanelGroup();
        divResultados.getChildren().add(dynamicDataTable);

        return "";
    }

    // HELPERS -----------------------------------------------------------------

    private ValueBinding createValueExpression(String valueExpression,
                                               Class<?> valueType) {
        FacesContext facesContext = FacesContext.getCurrentInstance();

        return facesContext.getApplication().createValueBinding(valueExpression);
    }

    private MethodBinding createActionExpression(String actionExpression,
                                                 Class<?> returnType) {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        return facesContext.getApplication().createMethodBinding(actionExpression,
                                                                 new Class[0]);
    }

....

Agradezco de Ante mano su ayuda....

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Resuelto...

Gracias compañeros, pero encontre la solucion...

Tan simple como v olver a asignar el valor de la propiedad con ValueBinding....

Si alguien se interesa por el tema les dejo un link muy interesante...

http://balusc.blogspot.com/2006/06/using-datatables.html

y si requieren mi codigo en jsf 1.1 , pueden solicitarlo con un correo

Gracias.

Imagen de CuicaJavier

Gracias por compartir tu solucion :D

Se agradece!