Integración de JDBC Mediator con la capa de presentación

El servicio DMS (Data Mediator Service) de JDBC se puede utilizar junto con tecnologías de capas de presentación de aplicaciones web como JSTL (JavaServer Pages Standard Tag Library) y JSF (JavaServer Faces).

En esta descripción se supone un conocimiento general de las tecnologías JSTL (JavaServer Pages Standard Tag Library) y JSF (JavaServer Faces). En particular para JSF, debería conocer el componente UIData y la estructura de archivos general de aplicaciones web dinámicas JSF. Para obtener una visión general de JSF y JSTL, consulte los temas de Objetos de datos de servicio.

El DMS de JDBC y JSTL funcionan bien juntos porque el código de acceso de JSTL es equivalente al código necesario para acceder a atributos y listas dentro de un DataObject. Por ejemplo, en relación con un DataObject Customer (Cliente) root, la expresión JSTL:

${rootDO.CUSTOMER[index].CUSTNAME}

es equivalente al código Java™ de un DataObject de:

rootDO.getList("CUSTOMER").get(index).get("CUSTNAME")

El motivo de esto es que la notación de punto del lenguaje de expresión JSTL se correlaciona con un método getter() en código Java y la notación de paréntesis permite acceder a elementos dentro de una lista.

El DMS de JDBC y JSF encajan bien juntos porque el DataGraph producido por el DMS de JDBC puede rellenar un componente UIData JSF sin tener que transformarlo. El componente UIData utiliza un código dataTable que acepta una lista como entrada para rellenar la tabla. Esto funciona bien con el DataGraph porque todo lo que necesita pasar a la dataTable es la lista root del DataGraph. El modo más común de presentar el DataGraph en la dataTable es mostrar cada atributo del DataObject de la lista recuperada del root en su propia columna e incorporar cada relación adicional con el DataObject en una dataTable nueva contenida en la fila del DataObject padre. Al utilizar este método en lugar de una tabla ResultSet tradicional se elimina la información duplicada y resulta más sencillo ver la separación de los hijos del objeto padre. En el tema Ejemplo: utilización de JavaServer Faces y JDBC Mediator dataTables se muestra un ejemplo de cómo se presenta el caso de Customer (Cliente) y Order (Pedido) en una dataTable.

Ejemplo: utilización de JavaServer Faces y JDBC Mediator dataTables.

Este ejemplo muestra el código que se ubicaría dentro de una página JSP de Faces. Demuestra cómo utilizar JavaServer Faces y JDBC Mediator dataTables en una aplicación.

Contiene el código dataTable del componente UIData con toda la información del cliente, junto con sus pedidos. Cada atributo Customer (Cliente) tiene su propia columna. Los Customer Orders (pedidos de clientes) se incorporan en otra dataTable que contiene cada uno de los atributos Order (Pedido) en columnas aparte. Esta dataTable de Orders (Pedidos) incorporada es como cualquier otro atributo Customer (Cliente), que tiene su propia columna dentro de cada fila Customer (Cliente).

<h:dataTable id="table1" value=">{pc_Customers.customer}" var=
"varcustomer" styleClass="dataTable">

  <h:column id="column1">
    <f:facet name="header">
      <h:outputText styleClass="outputText" value="Customerid" id=
        "text1"></h:outputText>
    </f:facet>
    <h:outputText id="text2" value=">{varcustomer.CUSTOMERID}"
    styleClass="outputText">
     <f:convertNumber />
    </h:outputText>
    </h:column>

  <h:column id="column2">
    <f:facet name="header">
 <h:outputText styleClass="outputText" value="Custfirstname"
     id="text3"></h:outputText>
   </f:facet>
   <h:outputText id="text4" value=">{varcustomer.CUSTFIRSTNAME}"
     styleClass="outputText">
    </h:outputText>
  </h:column>

  <h:column id="column3">
    <f:facet name="header">
      <h:outputText styleClass="outputText" value="Custlastname"
        id="text5"></h:outputText>
    </f:facet>
    <h:outputText id="text6" value=">{varcustomer.CUSTLASTNAME}"
      styleClass="outputText">
    </h:outputText>
  </h:column>

  <h:column id="column4">
    <f:facet name="header">
      <h:outputText styleClass="outputText" value="Custstreetaddress"
        id="text7"></h:outputText>
    </f:facet>
    <h:outputText id="text8" value=">{varcustomer.CUSTSTREETADDRESS}"
      styleClass="outputText">
    </h:outputText>
  </h:column>

  <h:column id="column5">
    <f:facet name="header">
      <h:outputText styleClass="outputText" value="Custcity" id="text9">
        </h:outputText>
    </f:facet>
    <h:outputText id="text10" value=">{varcustomer.CUSTCITY}"
       styleClass="outputText">
    </h:outputText>
  </h:column>

  <h:column id="column6">
    <f:facet name="header">
      <h:outputText styleClass="outputText" value="Custstate" id=
         "text11"></h:outputText>
    </f:facet>
    <h:outputText id="text12" value=">{varcustomer.CUSTSTATE}"
      styleClass="outputText">
    </h:outputText>
  </h:column>

  <h:column id="column7">
    <f:facet name="header">
      <h:outputText styleClass="outputText" value="Custzipcode"
         id="text13"></h:outputText>
    </f:facet>
    <h:outputText id="text14" value=">{varcustomer.CUSTZIPCODE}"
       styleClass="outputText">
    </h:outputText>
  </h:column>

  <h:column id="column8">
    <f:facet name="header">
      <h:outputText styleClass="outputText" value="Custareacode"
         id="text15"></h:outputText>
    </f:facet>
    <h:outputText id="text16" value=">{varcustomer.CUSTAREACODE}"
       styleClass="outputText">
    <f:convertNumber />
    </h:outputText>
  </h:column>

  <h:column id="column9">
    <f:facet name="header">
      <h:outputText styleClass="outputText" value="Custphonenumber"
         id="text17"></h:outputText>
    </f:facet>
    <h:outputText id="text18" value=">{varcustomer.CUSTPHONENUMBER}"
      styleClass="outputText">
    </h:outputText>
  </h:column>

  <h:column id="column10">
    <f:facet name="header">
      <h:outputText styleClass="outputText" value="Customers_orders"
         id="text19"></h:outputText>
    </f:facet>

    <h:dataTable id="table2" value=">{varcustomer.CUSTOMERS_ORDERS}"
      var="varCUSTOMERS_ORDERS" styleClass="dataTable">

     <h:column id="column11">
   <f:facet name="header">
     <h:outputText styleClass="outputText" value="Ordernumber"
        id="text20"></h:outputText>
   </f:facet>
   <h:outputText id="text21"
      value=">{varCUSTOMERS_ORDERS.ORDERNUMBER}"
      styleClass="outputText">
     <f:convertNumber />
   </h:outputText>
 </h:column>

 <h:column id="column12">
   <f:facet name="header">
     <h:outputText styleClass="outputText" value="Orderdate"
        id="text22"></h:outputText>
   </f:facet>
  <h:outputText id="text23" value=">{varCUSTOMERS_ORDERS.ORDERDATE}"
     styleClass="outputText">
     <f:convertDateTime />
   </h:outputText>
 </h:column>

 <h:column id="column13">
   <f:facet name="header">
     <h:outputText styleClass="outputText" value="Shipdate"
        id="text24"></h:outputText>
   </f:facet>
   <h:outputText id="text25"
     value=">{varCUSTOMERS_ORDERS.SHIPDATE}"
     styleClass="outputText">
     <f:convertDateTime />
   </h:outputText>
 </h:column>

 <h:column id="column14">
   <f:facet name="header">
     <h:outputText styleClass="outputText" value="Customerid"
       id="text26"></h:outputText>
   </f:facet>
   <h:outputText id="text27"
       value=">{varCUSTOMERS_ORDERS.CUSTOMERID}" styleClass="outputText">
     <f:convertNumber />
   </h:outputText>
 </h:column>

 <h:column id="column15">
   <f:facet name="header">
     <h:outputText styleClass="outputText" value="Employeeid"
        id="text28"></h:outputText>
   </f:facet>
   <h:outputText id="text29"
       value=">{varCUSTOMERS_ORDERS.EMPLOYEEID}" styleClass="outputText">
     <f:convertNumber />
   </h:outputText>
 </h:column>

    </h:dataTable>
  </h:column>
</h:dataTable>

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_sdoint
File name: rdat_sdoint.html