RichFaces - RichFaces

RichFaces
Richfaces logo.gif
Autor (es) original (is) JBoss
Versão estável
4.5.17.Final / 22 de junho de 2016 ; 4 anos atras ( 2016-06-22 )
Tipo Ajax , Java , JSF , Framework
Licença GNU Lesser General Public License
Local na rede Internet richfaces .jboss .org

RichFaces é uma biblioteca de componentes habilitada para Ajax de código aberto para JavaServer Faces , hospedada pelo JBoss . Ele permite a fácil integração de recursos Ajax no desenvolvimento de aplicativos corporativos . Chegou ao fim de sua vida útil em junho de 2016.

RichFaces é mais do que apenas uma biblioteca de componentes para JavaServer Faces. Acrescenta:

  • Skinability (alterar e atualizar facilmente a aparência do aplicativo)
  • Component Development Kit (CDK) para auxiliar na construção de componentes JavaServer Faces
  • Estrutura de recursos dinâmicos
  • Ambos os componentes de controle Ajax baseados em página e componentes.

História

RichFaces originou-se da estrutura Ajax4jsf que Alexander Smirnov projetou e implementou. No outono de 2005, Smirnov ingressou no Exadel e continuou a desenvolver a estrutura. Em março de 2006, o Exadel lançou a primeira versão do que se tornaria o Ajax4jsf. Mais tarde, no mesmo ano, o Exadel VCP foi dividido e o framework Ajax4jsf e RichFaces nasceram. Enquanto RichFaces fornecia componentes prontos para uso (uma abordagem Ajax "centrada em componentes", em que os componentes fazem tudo o que você precisa), Ajax4jsf fornecia suporte Ajax em toda a página. Os desenvolvedores especificam quais partes da página o servidor deve processar após algumas ações do usuário do lado do cliente e quais partes devem ser atualizadas após o processamento. Ajax4jsf se tornou um projeto de código aberto hospedado em java.net , enquanto RichFaces se tornou uma biblioteca comercial de componentes JSF.

Em março de 2007, a JBoss (uma divisão da Red Hat de 2006) e a Exadel assinaram um acordo de parceria em que Ajax4jsf e RichFaces passariam a ser sob o guarda-chuva JBoss como "JBoss Ajax4jsf" e como "JBoss RichFaces". RichFaces agora também se tornaria open-source e gratuito. Em setembro de 2007, JBoss e Exadel decidiram fundir Ajax4jsf e RichFaces sob o nome RichFaces. Fazia sentido, pois as duas bibliotecas agora eram gratuitas e de código aberto. Ter apenas um produto resolveu muitos problemas existentes de versão e compatibilidade, como qual versão do Ajax4jsf funcionaria com qual versão do RichFaces.

Em 12 de fevereiro de 2016, o desenvolvedor do RichFaces Michal Petrov anunciou o fim da vida do RichFaces em junho de 2016.

Estrutura

A estrutura é implementada como uma biblioteca de componentes que adiciona capacidade Ajax às páginas existentes, para que um desenvolvedor não precise escrever nenhum código JavaScript ou substituir componentes existentes por novos widgets Ajax. RichFaces ativa o suporte Ajax em toda a página em vez do suporte tradicional em todo o componente. Portanto, um desenvolvedor pode definir o evento na página que invoca uma solicitação Ajax e as áreas da página que devem ser sincronizadas com a árvore de componentes JSF depois que a solicitação Ajax altera os dados no servidor de acordo com os eventos disparados no cliente.

RichFaces permite definir (por meio de tags JSF) diferentes partes de uma página JSF que você deseja atualizar com uma solicitação Ajax e fornece algumas opções para enviar solicitações Ajax ao servidor. Além disso, a página JSF não muda de uma página JSF "normal" e você não precisa escrever nenhum código JavaScript manualmente. Ao controlar tudo do lado do servidor, quase nenhum JavaScript é necessário e o estado da página pode ser mantido facilmente no servidor.

Arquitetura RichFaces

A arquitetura do RichFaces consiste em um filtro Ajax, componentes de ação Ajax, contêineres Ajax e um mecanismo JavaScript.

Filtro Ajax - Para obter todos os benefícios do RichFaces, um desenvolvedor deve registrar um filtro no arquivo web.xml do aplicativo. O filtro reconhece vários tipos de solicitação.
Componentes de ação Ajax - AjaxCommandButton, AjaxCommandLink, AjaxPoll e AjaxSupport e outros componentes de ação podem ser usados ​​para enviar solicitações Ajax do lado do cliente.
Contêineres Ajax - AjaxContainer é uma interface que descreve uma área em uma página JSF que deve ser decodificada durante uma solicitação Ajax. AjaxViewRoot e AjaxRegion são implementações dessa interface.
Mecanismo JavaScript - o mecanismo JavaScript RichFaces é executado no lado do cliente. Ele atualiza diferentes áreas em uma página JSF com base nas informações da resposta do Ajax. O mecanismo JavaScript fornece uma API para que os desenvolvedores não precisem criar sua própria funcionalidade JavaScript.

Skinnability

Skinnability é um recurso especial do RichFaces usado para definir estilos de interface comuns. O recurso é baseado na tecnologia XCSS, que fornece flexibilidade e dinâmica. RichFaces fornece um conjunto de skins predefinidos:

  • PADRÃO
  • avião
  • emeraldTown
  • céu azul
  • vinho
  • japanCherry
  • rubi
  • clássico
  • deepMarine
  • Laguna (novo - RichFaces 3.2.1)
  • GlassX (novo - RichFaces 3.2.2)
  • DarkX (novo - RichFaces 3.2.2)

Propriedades de skin, como generalBackgroundColor, generalLinkColor, headerFamilyFont etc., são armazenadas no arquivo skinname.skin.properties. Cada componente possui um arquivo XCSS (um formato de arquivo especial que combina a flexibilidade de XML e CSS) que executa o mapeamento de seletores CSS para as propriedades de skin de uma skin específica. Além disso, RichFaces fornece skin para controles HTML padrão. Você pode criar um skin personalizado usando o recurso Plug-n-Skin, que é um arquétipo do Maven que constrói um esqueleto para um novo skin.

Página JSF simples com componente de calendário RichFaces

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">
  <ui:composition template="/templates/component-sample.xhtml">
    <a4j:outputPanel id="calendar" layout="block">
      <rich:calendar value="#{calendarBean.selectedDate}"
        locale="#{calendarBean.locale}"
        popup="#{calendarBean.popup}"
        
        showApplyButton="#{calendarBean.showApply}"
        cellWidth="24px" cellHeight="22px" style="width:200px"/>
    </a4j:outputPanel>
  </ui:composition>
</html>

Este é o resultado do código apresentado acima

RichFacesCalendar.png

Veja também

Referências

links externos