Rich Faces

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 16 maj 2018; kontroller kräver 7 redigeringar .
JBoss Rich Faces
Sorts Ajax , Java , JSF
Författare JBoss
senaste versionen 4.5.17 Final [1] ( 22 juni 2016 )
Licens GNU Lesser General Public License
Hemsida jboss.org/richfaces/

RichFaces  är ett komponentbibliotek för JavaServer Faces baserat på Ajax4jsf- ramverket med öppen källkod . Låter dig enkelt integrera Ajax -teknik i en företagsapplikation.

Förutom det stora antalet färdiga visuella komponenter i Ajax4jsf-ramverket, implementerar RichFaces även stöd för skinn ("skinnability"), vilket ger ett stort antal fördefinierade skal för att anpassa utseendet på applikationen.

History of Rich Faces

RichFaces-komponentbiblioteket skapades inom ramen för Ajax4jsf , som utvecklades av Alexander Smirnov. [2] Hösten 2005 gick Smirnov med i Exadel och fortsatte att utveckla ramverket. Den första versionen av Ajax4jsf släpptes i mars 2006 . Senare samma år delade Exadel VCP Ajax4jsf-ramverket i två delar och RichFaces föddes. Ajax4jsf blev ett gratisprojekt på Java.net, medan RichFaces blev ett kommersiellt komponentbibliotek för JSF.

RichFaces förser utvecklaren med en uppsättning komponenter som fungerar "out of the box" (det vill säga att komponenten gör allt den behöver), implementerar ett komponentorienterat tillvägagångssätt för att stödja Ajax-teknik, medan Ajax4jsf kräver implementering av Ajax-stöd på sida.

I mars 2007 undertecknade JBoss (nu en division av Red Hat ) och Exadel ett partnerskapsavtal enligt vilket Ajax4jsf och RichFaces skulle utvecklas under JBoss-paraplyet och döpas till JBoss Ajax4jsf och JBoss RichFaces. RichFaces skulle vara öppet och gratis. I september 2007 beslutade JBoss och Exadel att slå samman Ajax4jsf och RichFaces under namnet RichFaces. Detta var vettigt, eftersom båda biblioteken redan var öppna. Att bara ha en produkt var tänkt att lösa många kompatibilitetsproblem som fanns tidigare, som vilken version av Ajax4jsf som behövs för att fungera med en viss version av RichFaces.

Versioner av RichFaces sedan 4.0 har 100 % stöd för JSF 2.0 och kräver användning av facelets .

Framework

Ramverket är implementerat som ett bibliotek av komponenter som lägger till Ajax- stöd till befintliga sidor utan att utvecklaren behöver skriva JavaScript -kod eller ersätta befintliga komponenter med nya Ajax -widgets . RichFaces tillhandahåller "page"-stöd för Ajax-teknik i motsats till den traditionella komponentmodellen. Det vill säga, utvecklaren kan definiera händelsen som Ajax-begäran genereras på sidan och de områden på sidan som kommer att synkroniseras med JSF-komponentträdet efter att Ajax-begäran ändrar data på servern i enlighet med händelserna som inträffade på kundsidan.

RichFaces låter dig specificera (med JSF-taggar) de olika områdena på en JSF-sida som behöver uppdateras med en Ajax-förfrågan, och ger flera sätt att skicka en förfrågan till servern. Det är också värt att notera att sidan inte skiljer sig från en "vanlig" JSF-sida och det finns inget behov av att skriva JavaScript-kod manuellt.

RichFace-arkitektur

RichFaces-arkitekturen består av följande delar: Ajax Filter, AJAX Action Components, AJAX Containers och JavaScript Engine.

Ajax Filter  – För att få full nytta av att använda RichFaces måste utvecklaren registrera filtret i programmets web.xml-fil. Filtret känner igen olika typer av frågor. Sedan version 4.0 är detta valfritt. AJAX Action Components  - AjaxCommandButton, AjaxCommandLink, AjaxPoll, AjaxSupportoch andra komponenter kan användas för att skicka Ajax-förfrågningar från klientsidan. AJAX Containers  är AjaxContainer ett gränssnitt som beskriver ett område på en JSF-sida som behöver avkodas under en Ajax-förfrågan. AjaxViewRootoch AjaxRegionär implementeringar av detta gränssnitt. JavaScript-motor  - RichFaces JavaScript-motor körs på klientsidan. Den uppdaterar olika områden på JSF-sidan baserat på informationen från Ajax-svaret. JavaScript-motorn tillhandahåller ett API så att utvecklaren inte behöver skriva sina egna JavaScript-funktioner.

Hudstöd

Hudstöd är en funktion hos RichFaces som används för att definiera gränssnittets övergripande stil. Denna funktion är baserad på XCSS- teknik, vilket ger flexibilitet och dynamik. RichFaces inkluderar en uppsättning förinstallerade skal:

Hudattribut som generalBackgroundColor, generalLinkColor, headerFamilyFontetc. lagras i skinname.skin.properties. Varje komponent har en XCSS-fil (ett speciellt filformat som kombinerar flexibiliteten hos XML och CSS ) som ger en mappning av CSS-väljare till egenskaperna för det valda skalet. Dessutom är det möjligt att ställa in skalattribut för vanliga HTML- kontroller . Det är möjligt att skapa din egen hud med Plug-n-Skin-funktionen, som är en Maven-arketyp och är ramverket för ett nytt skinn.

Ett enkelt exempel på en JSF-sida som använder RichFaces-kalenderkomponenten

<!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/xhtml" 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}" datePattern= "#{calendarBean.pattern}" showApplyButton= "#{calendarBean.showApply}" cellWidth= "24px" cellHeight= "22px" style= " width:200px" /> </a4j:outputPanel> </ui:composition> </html>

Resultatet av att köra ovanstående kod ser ut så här:

Anteckningar

  1. RichFaces 4.5.17 . Slutlig releasemeddelande . Hämtad 19 juni 2018. Arkiverad från originalet 20 juni 2018.
  2. Max Katz, Exadel. Ajax4jsf och RichFaces - historiskt perspektiv (död länk) (15 augusti 2008). Arkiverad från originalet den 2 februari 2009. 

Länkar