Integração do Mediador JDBC com a Camada da Apresentação

O JDBC Data Mediator Service (DMS) pode ser usado em conjunto com as tecnologias de camada de apresentação de aplicativo da Web, como o JavaServer Pages Standard Tag Library (JSTL) e o JavaServer Faces (JSF).

Esta discussão presume um conhecimento geral das tecnologias JSTL (JavaServer Pages Standard Tag Library) e JSF (JavaServer Faces). Em particular para o JSF, o componente UIData e a estrutura de arquivo geral de um aplicativo da Web dinâmico do JSF devem ser conhecidos. Para obter uma breve visão geral do JSF e JSTL, consulte os tópicos em Objetos de Dados de Serviço.

O DMS e o JSTL do JDBC funcionam juntos adequadamente porque o código de acesso JSTL é equivalente ao código necessário para acessar os atributos e as listas dentro de um DataObject. Por exemplo, em relação a um DataObject de Cliente raiz, a expressão JSTL:

${rootDO.CUSTOMER[index].CUSTNAME}

é equivalente ao código Java™ para um DataObject de:

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

A razão disso é que a notação de ponto na linguagem de expressão JSTL correlaciona com um método getter() no código Java, enquanto a notação de parêntese permite acessar elementos em uma lista.

O DMS e o JSF do JDBC se ajustam bem em conjunto porque o DataGraph produzido pelo JDBC DMS é capaz de ocupar um componente JSF UIData sem precisar ser transformado. O componente UIData utiliza uma tag dataTable que considera uma lista como sua entrada para ocupar a tabela. Isso funciona bem com o DataGraph porque tudo o que você precisa transmitir no dataTable é a lista raiz do DataGraph. A maneira mais comum de organizar o DataGraph no dataTable é exibir cada atributo do DataObject da lista recuperada da raiz em sua própria coluna e integrar cada relacionamento adicional ao DataObject em um novo dataTable contido na linha do DataObject pai. Usar este método em vez de uma tabela ResultSet tradicional elimina informações duplicadas e facilita ver a separação dos filhos do objeto-pai. Um exemplo de como o cenário de Cliente e Pedido é organizado em um dataTable é mostrado no tópico Exemplo: Usando JavaServer Faces e dataTables do Mediador JDBC.

Exemplo: Usando o JavaServer Faces e o dataTables do Mediador JDBC

Este exemplo mostra um código que estaria localizado em uma página JSP de Faces. Ele demonstra como utilizar o JavaServer Faces e os dataTables do Mediador JDBC em um aplicativo.

Ele contém a tag dataTable do componente UIData com todas as informações do cliente, junto com seus pedidos. Cada atributo Cliente possui sua própria coluna. Os Pedidos do Cliente são incorporados em outro dataTable que contém cada um dos atributos Pedido em colunas separadas. Esse dataTable incorporado de Pedidos é semelhante a qualquer outro atributo Cliente, que possui sua própria coluna dentro de cada linha do 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>

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_sdoint
Nome do arquivo: rdat_sdoint.html