COPEL Processo de Desenvolvimento de Software

Guia Desenvolvimento para aplicações WEB

Página 1/ 11 Versão: 1.0.1

Guia Desenvolvimento para aplicações WEB

C:\CLM###BOT_TEXT###2\GOP\PET - Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB.odt

Data: 16/11/09

.................................................................................................................................................. .......................................................................................................................................7 10 FORMATAÇÃO........................................10 14 EXEMPLOS...........................................................................................................................................................................4 7 DESENVOLVIMENTO..............................................................................................................................................................................................................................................................................3 3 IMPLEMENTAÇÃO ................3 4 REGRAS GERAIS DE PROGRAMAÇÃO.............................3 2 BROWSERS .................................3 5 BIBLIOTECAS DE COMPONENTES..Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB...........................................................................COPEL Processo de Desenvolvimento de Software Guia Desenvolvimento para aplicações WEB Página 2/ 11 Versão: 1............................4 8 VALIDAÇÃO DE CAMPOS.............................................................................................................................11 C:\CLM###BOT_TEXT###2\GOP\PET .............0..........................................................................8 11 ESTRUTURA FÍSICA .......1 Sumário 1 OBJETIVO .................................................................................................................................................4 6 FERRAMENTA DE DESENVOLVIMENTO.............................................9 13 EMPACOTAMENTO............................................odt Data: 16/11/09 .......................................................................................................................................................................................................7 9 DEFINIÇÃO DE NOMES......................................................8 12 CONFIGURAÇÕES.......................................................................................................................

3 Implementação A implementação a ser utilizada está definida no documento de arquitetura é compatível com a especificação da SUN.sun. 4 Regras Gerais de Programação Devem seguir as regras de arquitetura e programação Java da COPEL.Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB.0. 5 Bibliotecas de Componentes C:\CLM###BOT_TEXT###2\GOP\PET . Deve ser possível rodar a aplicação sem a necessidade de instalação de nenhum outro software/plug-in no browser cliente. Estabelecer a implementação de JSF a ser usada e quais componentes poderão ser utilizados e um padrão para a sua utilização.1 O objetivo deste documento é expor uso da tecnologia JavaServer Faces (JSF http://java. *Neste documento o termo “documento de arquitetura” se refere ao documento "Arquitetura de Software de Desenvolvimento da STI ".* 2 Browsers As aplicações deve ser compatíveis com os seguintes browsers definidos no documento de arquitetura. Os componentes a serem utilizados no desenvolvimento deverão ser compatíveis com essa implementação.COPEL Processo de Desenvolvimento de Software 1 Objetivo Guia Desenvolvimento para aplicações WEB Página 3/ 11 Versão: 1.com/javaee/javaserverfaces/ ) para o desenvolvimento de aplicações web usando a plataforma Java pelas equipes de desenvolvimento da Superintendência de Tecnologia da Informação (STI) da COPEL. Se for necessário algum software adicional deve existir uma justificativa o mesmo se aplica ao uso de applets.odt Data: 16/11/09 .

O modelo representa a estrutura de dados e operações que atuam nestes dados. teclas de atalho.sun. JavaServer Pages (JSP) e XML. de tal forma que é possível usar componentes de diversos fornecedores de forma padronizada.odt Data: 16/11/09 . apresentando os dados que vêm do modelo.sun. Porém os componentes para serem utilizados precisam passar pela aprovação da área responsável pelo Suporte ao desenvolvimento da COPEL. Outras bibliotecas possíveis de utilização devem constar no documento de arquitetura. 6 Ferramenta de desenvolvimento A ferramenta de desenvolvimento a ser utilizada consta no documento de arquitetura bem como o ambiente e softwares necessários para a execuação. 7 Desenvolvimento O Model-View-Controller é um padrão que separa em três formas distintas as funcionalidades de uma aplicação. As seguintes bibliotecas estão liberadas para o uso no desenvolvimento das aplicações e elas podem ser utilizadas com as bibliotecas de componentes padrão do JSF (Core e HTML) http://java. A mesma informação pode ser apresentada de maneiras diferentes para grupos de usuários com requisitos diferentes. etc) juntamente com os valores de entrada de dados em chamadas à funções específicas no modelo. manutenção e extensão dos mesmos. Um controlador traduz ações de usuários (movimento e click de mouse. foi criado pela SUN e também define um modelo para a criação de componentes.COPEL Processo de Desenvolvimento de Software Guia Desenvolvimento para aplicações WEB Página 4/ 11 Versão: 1.com/jsf/core -http://java. o padrão JSF é uma implementação de um MVC. C:\CLM###BOT_TEXT###2\GOP\PET .1 Especificação da SUN sobre JSF define um modelo de componentes. Existem várias implementações desenvolvidas. A divisão de responsabilidades que resulta deste particionamento lógico possibilita uma melhor compreensão e organização dos requisitos da aplicação e facilita a implementação.Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB. A camada de visão é composta por arquivos HTML. O JSF é um framework MVC para o desenvolvimento de aplicações Web. As visões implementam exclusivamente a lógica de apresentação dos dados em um formato apropriado para os usuários.com/jsf/ html.0.

xml e só usar o escopo de seção quando for realmente necessário. A regra de nomes para as classes e para a sua declaração deve seguir o padrão de definido no guia de desenvolvimento Java.COPEL Processo de Desenvolvimento de Software Guia Desenvolvimento para aplicações WEB Página 5/ 11 Versão: 1.backing.1 O framework possui um modelo de eventos do lado servidor ("server-side event model") e faz a gerência de estados dos objetos.Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB. A separação se dá por meio de classes façade que serão chamadas pelos Backing Beans e farão acesso as regras do negócio.FormBean </managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> As páginas devem incluir apenas tags e podem fazer uso do JSF expression language (JSF EL http://java. Como no exemplo a seguir: <managed-bean> <managed-bean-name>backingForm</managed-bean-name> <managed-bean-class> com.0. Eles são responsáveis pela chamada de classes de negócio. Os Backing Beans deverão sempre ser declarados no arquivo facesconfig.odt Data: 16/11/09 . Uma mesma página pode chamar mais de um Backing Bean.copel. Em JSF o elo de ligação entre a visualização e a lógica de negocio são os Backing Beans.html) C:\CLM###BOT_TEXT###2\GOP\PET .exemplo.sun.com/products/jsp/reference/techart/unifiedEL.

xml. A Navegação entre as páginas deve ser feita por meio do faces-config. Camada de negócios.Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>erro</from-outcome> <to-view-id>/paginaErro. não colocar link para outras página diretamente.jsp</to-view-id> </navigation-case> C:\CLM###BOT_TEXT###2\GOP\PET . services Camada de integração data acess objects webservices) figura 1. Os Baking Beans que são responsáveis de chamar a camada de negócio.diagrama da arquitetura padrão O diagrama da figura 1 representa a arquitetura das aplicações. EJB. EJB. A IDE Eclipse possui ferramenta para construção das regras de navegação de forma gráfica.0.odt Data: 16/11/09 .1 Camada de apresentação (JSF Views) Backing Beans.xml: <navigation-rule> <from-view-id>/paginaExecucao.COPEL Processo de Desenvolvimento de Software Guia Desenvolvimento para aplicações WEB Página 6/ 11 Versão: 1.jsp</from-view-id> <navigation-case> <from-outcome>sucesso</from-outcome> <to-view-id>/paginaResultado. apenas o mapeamento entre os elementos das páginas JSP e os seus respectivos Backing Beans. A Primeira camada são as páginas JSP que formam a camada de apresentação. Event Listeners. Exemplo de regra de navegação do arquivo faces-config. A camada de apresentação não deve possuir código Java. web Dados (banco de dados. POJOs.

<h:selectOneListbox id="list" value="#{backingBean.com/blueprints/code/namingconventions. http://java. As mensagens devem ser colocadas sempre em arquivo de configuração como descrito no item 6.COPEL Processo de Desenvolvimento de Software </navigation-rule> Guia Desenvolvimento para aplicações WEB Página 7/ 11 Versão: 1.0.selectedId}"> <a4j:support event="onclick" action="#{backingBean.1 Para o uso de AJAX nas aplicações pode ser usado a biblioteca ajax4jsf.validator.Email"/> </h:inputText> <h:message for="email" style="ErrorMessage"/> <h:inputText id="string" required="true" value="#{data.email}" required="true"> <f:validator validatorId="org.sun.selectList}"/> </h:selectOneListbox> 8 Validação de Campos As validações de entrada de dados devem ser feitas por meio de Validator de forma declarativa. deve-se restringir o desenvolvimento usando javascript de forma direta. Esse biblioteca pode ser usada para dar comportamento assíncronos por exemplo nos componentes do core do JSF.string}" size="20"> <f:validateLength minimum="3" maximum="12"/> </h:inputText> <h:message for="string" style="ErrorMessage"/> <br/> 9 Definição de nomes.changeCurrent}" reRender="info"/> <f:selectItems value="#{backingBean.Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB.odt Data: 16/11/09 . <h:inputText id="email" value="#{validateForm.myfaces. Os nomes dos artefatos deve ser compatível com a convenção de nomes da sun.apache.html C:\CLM###BOT_TEXT###2\GOP\PET .

cores.1 A formatação das páginas JSP de tamanho de fonte.date}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Amount" /> </f:facet> <h:outputText value="#{e. O uso de fragmentos HTML deve ser restrito.currentReportEntries}" var="e"> <h:column> <f:facet name="header"> <h:outputText value="Date" /> </f:facet> <h:outputText value="#{e. <h:dataTable value="#{reportHandler. espaçamento devem estar sempre feitas por meio de um classe definida em um arquivo CSS.Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB.org/1. Fragmentos de páginas que são iguais devem ser feitos por meio de includes ou utilizando Struts Tiles (http://struts. A versão a ser utilizada do CSS é a 2.0.0.x/struts-tiles/) para o gerenciamento do layout como forma de evitar repetição de código.COPEL Processo de Desenvolvimento de Software 10 Formatação Guia Desenvolvimento para aplicações WEB Página 8/ 11 Versão: 1.odt Data: 16/11/09 . Como no exemplo a seguir onde se tabulam dados usando a tag datable ao invés do uso de table do HTML.apache. deve-se preferir usar os elementos e componentes das tags do JSF. preferencialmente criar um jar com as classes conf  arquivos de configuração da aplicação img  imagens usadas na visualização css  arquivos css contendo a formatação das paginas js  bibliotecas de funções JavaScript html  páginas estáticas da aplicação C:\CLM###BOT_TEXT###2\GOP\PET .xml  arquivo de configuração do Java Server Faces tags  definição das tags desenvolvidas para a aplicação lib  arquivos jar das bibliotecas necessárias para a execução classes  classes compiladas.xml  arquivo de configuração do contexto web faces-config.amount}" /> </h:column> </h:dataTable> 11 Estrutura Física A estrutura de diretórios para a aplicação web deve seguir o descrito a seguir: WEB-INF  diretório de configuração da aplicação web.

ser separadas por diretórios agrupadas por 12 Configurações As configurações devem seguir os arquivos web. As inicializações devem ser feitas por meio da criação de uma classe listener que deverá ser adicionada ao arquivo web. A classe a ser gerada deve implementar a interface ServletContextListener e as chamadas devem ser feitas no método contextInitialized.myfaces.examples.exemplo.copel. index.example_messages" var="messages"/> O arquivo de mensagens pode também ser configurado através do arquivo faces-config.0.exemplo.copel.resource. As mensagens e labels das telas devem ser colocadas dentro de arquivo de configuração e carregados da seguinte forma na página.zip).WebAppContainerInitalizer C:\CLM###BOT_TEXT###2\GOP\PET . Exemplos: #nome de campos em formulários consumidor.apache.cadastraCliente.odt Data: 16/11/09 .xml e faces-config.xml contidos no projeto padrão ( blank-jsf.digitoVerificarInvaldio = O digito verificador é inválido. <listener> <listener-class> com. Os parâmetros devem ser passados ou pelo arquivo padrão web.jsp  página inicial padrão.COPEL Processo de Desenvolvimento de Software Guia Desenvolvimento para aplicações WEB Página 9/ 11 Versão: 1.1 <pages>  as página devem funcionalidades.xml ou por arquivo de properties.Messages_pt </message-bundle> </application> O Arquivo é formado por uma chave e um valor. <f:loadBundle basename="org.labelCliente = cliente #mensagens de erro error.xml Exemplo: <application> <message-bundle> com.xml.Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB.

No projeto exemplo (black-jsf.dev. As taglibs externas deve estar devidamente aprovadas pela área do suporte responsável pela infra-estrutura dos servidores da COPEL. O arquivo war não deve incluir no empacotamento arquivos Java compilados.0.net/ajax" prefix="a4j"%> 13 Empacotamento A aplicação deverá ser empacotada em um Web Archive (war).org/tomahawk" prefix="t" %> <%@ taglib uri="https://ajax4jsf.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.1 public class WebContainerInitalizer implements ServletContextListener { public void contextInitialized(ServletContextEvent arg0) { //inicializações necessárias para a aplicação . bibliotecas javascript.xml).COPEL Processo de Desenvolvimento de Software </listener-class> </listener> Guia Desenvolvimento para aplicações WEB Página 10/11 Versão: 1. <%@ taglib uri="http://java. O conteúdo deve ser as páginas. C:\CLM###BOT_TEXT###2\GOP\PET .java..sun. …).zip) existe um script ant para a criação dos empacotamentos ( packing-build. css.apache.com/jsf/core" prefix="f" %> <%@ taglib uri="http://myfaces. As bibliotecas externas e necessárias ao projeto podem estar incluídas no empacotamento.Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB.sun.. mas a administração dos servidores deverá indicar quais já estão incluídas no servidor de aplicação. arquivos estáticos (imagens. } As declaração de taglibs nas página deve seguir o seguinte formato. As classes do aplicativo deverão ser também empacotadas dentro de um arquivo jar. Deve existir também com o empacotamento um documento contendo as dependências do projeto com arquivos Jars necessários para a sua execução.odt Data: 16/11/09 .

Incluem os arquivos web. e as bibliotecas (blank-jsf.xml.COPEL Processo de Desenvolvimento de Software 14 Exemplos Guia Desenvolvimento para aplicações WEB Página 11/11 Versão: 1.xml. C:\CLM###BOT_TEXT###2\GOP\PET .1 Os exemplos estão em arquivo anexo contento as configurações e bibliotecas necessárias.odt Data: 16/11/09 .Parametros e Limites de Equipamentos\material auxiliar\Padroes e orientações\Guia Desenvolvimento para aplicações WEB.zip). faces-config.0.