Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Integrando JSF e CSS – Aplicando estilos ao dataTable

Nesse artigo, aprenderemos como aplicar folhas de estilos a um dataTable.

 

Continuando o nosso artigo anterior sobre integração de JSF(Java Server Faces),  e CSS(Cascading Style Sheets) em formulários, nesse artigo, iremos aprender, como aplicar folhas de estilos a um dataTable.

 

Só lembrando que dataTable é uma importante tag do pacote html do JSF, sua finalidade é facilitar as iterações em coleções de objetos gerando dessa forma um objeto <table> em HTML com valores vindos dessa coleção.

 

Tomando novamente por base que você já tenha alguma vivência com JSF,  crie um projeto  de aplicação web com suporte a essa tecnologia, nele, teremos uma aplicação que aplica o esquema de uso de CSS conforme mostra a figura 01, note que  teremos um arquivo CSS, que contém quatro elementos chamados: “tabela”, “cabecalho”, “primeiro” e “ultimo”, cada um deles, tem um objetivo de estilo específico, pois observe que o elemento “tabela”, será aplicado na borda da  mesma, o “cabecalho”,  é aplicado nos títulos de cada coluna, já os elementos “primeiro” e “ultimo” trabalham em conjunto de maneira alternada para gerar um efeito de colunas zebradas, onde primeiro teremos uma coluna com fundo verde mais claro e a segunda coluna com o fundo verde mais escuro, não importando o número de colunas que tabela possua.

 

mpjscsfig01.JPG 

Figura 01 – Esquema de integração CSS e dataTable

 

Elementos CSS

Como você observou na figura 01,  teremos um arquivo CSS que será chamado de tabelas.css, e deverá ser inserido em um diretório específico em seu projeto, veja na listagem 01, os elementos que participam desse arquivo CSS, observe que no geral, as definições de estilos, são relacionadas às bordas, cor de fundo,  alinhamento e fontes.

 

/* Definição de estilos para toda a tabela*/

.tabela {

     border: 1px solid green;

}

 

/* Definição de estilos para linha de cabeçalho da tabela*/

.cabecalho {

   text-align: center;

   font: 11px Arial, sans-serif;

   font-weight: bold;

   color: Snow;

   background:  #008B45;

}

 

/* Definição de estilos para coluna */

.primeiro {

   text-align: center;

   font: 11px Arial, sans-serif;

   background: #A2CD5A;

}

 

/* Definição de estilos para coluna */

.ultimo {

   font: 11px Arial, sans-serif;

   text-align: center;

   background: #BCEE68;

}

Listagem 01 - Arquivo CSS.

 

Código JSF para gerar dataTable

Agora, veja na listagem 02, em que nossa página JSP(Java Server Pages) teremos o código comentado JSF(Java Server Faces), contendo a tag dataTable que fará a iteração sobre a lista vinda de uma classe Managed Bean  e construirá uma tabela contendo os campos e os elementos da lista, aplicando os estilos definidos no arquivo tabelas.css.

 

<!--Chamada aos pacotes core e html do JSF -->

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

 

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <!--Chamada ao arquivo tabelas.css que contém as espeficicação de estilos -->

        <link rel="stylesheet" type="text/css"  href="css/tabelas.css"/>  

        <title>JSP Page</title>

    </head>

    <body>

        <f:view>

            <h1><h:outputText value="Integrando JSF com CSS" /></h1>

            <h:form>

                <!--

                criação de uma tabela HTML através da tag JSF dataTable, note a chamada

                aos elementos CSS através do atributo styleClass (Para o dataTable 

                inteiro),o atributo headerClass (para a linha de cabeçalho) e

                columnClasses(para as colunas da tabela)

                -->       

                <h:dataTable var="objetoCliente" value="#{cli.lista}"      

 styleClass="tabela"   headerClass="cabecalho"  

 columnClasses="ultimo,primeiro" >

 

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="Nome"/>

                        </f:facet>

                        <h:outputText value="#{objetoCliente.nome}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="Email"/>

                        </f:facet>

                        <h:outputText value="#{objetoCliente.email}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="RG"/>

                        </f:facet>

                        <h:outputText value="#{objetoCliente.rg}"/>

                    </h:column>

                    <h:column>

                        <f:facet name="header">

                            <h:outputText value="CPF"/>

                        </f:facet>

                        <h:outputText value="#{objetoCliente.cpf}"/>

                    </h:column>

 

                </h:dataTable>

            </h:form>

        </f:view>

    </body>

</html>

Listagem 02 - Código JSF com a tag dataTable.

 

Com esse código pronto, basta executarmos nossa aplicação e teremos uma página semelhante ao mostrado na figura 01, lembrando que nesse artigo, foi usado o NetBeans 5.5, portanto a aplicação foi executada pelo próprio TomCat 5.5.17 embutido na própria IDE do NetBeans, mas esse trabalho, pode ser feito em qualquer IDE, usando o não o TomCat embutido.

 

mpjscsfig02.JPG 

Figura 02  dataTable gerado ao rodar a aplicação.

 

Só lembrando que para obter esse resultado foi usado uma classe chamada ClienteBean que contém os atributos mostrados na tabela e seus respectivos métodos getters e setters, bem como um Managed Bean chamado ClienteManagedBean, que contém o atributo lista do tipo ArrayList e um método  chamado getList() que retorna a lista devidamente populada pelos elementos desejados.

 

Conclusões

Bem, como você viu, aplicar estilos CSS em paginas JSF é bem simples, entenda, que o objetivo principal desse artigo foi mostrar exatamente a dinâmica dessa integração, claro que dependendo da necessidade você poderá usar muito mais formas de aplicação dessas suas fantásticas tecnologias. Espero que você tenha gostado, e principalmente tenha elucidado algumas dúvidas suas a respeito desse assunto. Até a próxima.

 

Referências

MEDEIROS, Manoel Pimentel - Artigo Integrando JSF e CSS(DevMedia- 2007)

Link: http://www.devmedia.com.br/articles/viewcomp.asp?comp=4577





    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Autor
Manoel Pimentel Medeiros

Manoel Pimentel Medeiros (manoel@visaoagil.com) É Engenheiro de Software, com 15 anos na área de TI, atualmente trabalha como Coach(PPC) em Agile, Lean e TOC para empresas do segmento de serviço, financeiro e bancário. É Diretor Editorial da Revista Visão Ágil e Editor Chefe da InfoQ Brasil. Já esc...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03