A RichFaces egy nyílt forráskódú, ajaxos komponenskönyvtár a JBosstól a JavaServer Faces lehetőségeink kibővítésére. Ajaxos funkciókat lehet vele vállalati alkalmazásokba építeni.

RichFaces

FejlesztőJBoss
Első kiadás2005
Operációs rendszerplatformfüggetlen
KategóriaJSF UI komponenskészlet
LicencGNU Lesser General Public License
A RichFaces weboldala

A RichFaces leírása szerkesztés

RichFaces több mint egy JavaServer könyvtárkomponens, számos egyéb lehetőséget is biztosít:

  • szabványos designt(könnyen változtatható és frissíthető alkalmazás kinézetet)
  • Component Development Kit - et (CDK), ami segít JavaServer Faces komponensek felépítésénél
  • Dinamikus erőforrás vázat
  • oldal szélesség és komponensek tulajdonságai Ajax vezérlő komponensen alapulnak.

A RichFaces története szerkesztés

RichFaces az Ajax4jsf vázból ered, amelyet Alexander Smirnov csinált és tervezett.[1] 2005 őszén Smirnov csatlakozott Exadelhez és folytatta a váz fejlesztését. Az Ajax4jsf-en történt változtatásai először 2006 márciusában mutatkoztak be. Később, még abban az évben, az Exadel VCP levált az eredeti projektről és az Ajax4jsf váz és a Rich Faces megszületett. Míg a RichFaces "out-of-box" komponenseket készít (ezek komponens centrikus Ajax hívások, ahol a komponensek azt a feladatot látják el, amire a felhasználónak szüksége van), addig az Ajax4jsf Ajax támogatást szolgáltatott. A fejlesztők meghatározták, hogy az oldal mely részeit kellene feldolgozni a szerveren, és hogy mely részeket kellene feldolgozni a művelet után. Ezek után a két könyvtár fejlődése elvált. Az Ajax4jsf egy nyílt forrású projekt lett a Java.net által támogatva, míg a RichFaces egy kereskedelmi JSF komponens könyvtárrá vált.

2007 márciusában a JBoss és az Exadel aláírt egy megegyezést, amelyben az áll hogy az Ajax4jsf-nek és a RichFaces-nek nem kellene a JBoss ernyője alatt lennie tovább és úgy kellene hívni őket inkább, hogy JBoss Ajax4jsf és JBoss RichFaces és így a RichFaces-nek nem kellene szabad forrásúnak lennie. 2007 szeptemberében, a JBoss és az Exadel elhatározták hogy összeolvasztják az Ajax4jsf-t és a RichFaces-t RichFaces név alatt. Ez azt az érzetet keltette, hogy a könyvtárak nem lesznek továbbra is szabadok és nyílt forrásúak.

A váz szerkesztés

Komponenskönyvtárként valósították meg úgy, hogy már meglévő oldalakat is ki lehessen bővíteni ajaxos funkciókkal. Így a fejlesztőknek nem kell lecserélniük létező komponenseket új, ajaxos widgetekre. A RichFaces a hagyományos komponensek működése mellett teszi lehetővé az Ajax támogatását. A fejlesztő Ajax-kérésre frissülő JSF oldalrészleteket határozhat meg, és Ajax-kéréseket küldhet a szerverre. Mindezt úgy, hogy a JSF oldalon nem kell változtatni és nem is kell JavaScriptben kódolni. A Richfaces jQuery-re (is) épül, azonban a beépített verziót érdemes leellenőrizni használat előtt.

RichFaces konstrukció szerkesztés

  • Ajax szűrő - szabványosan biztosítja az Ajax támogatást anélkül, hogy szűrőt kellene regisztrálni az alkalmazás web.xml file-jában. A szűrő felismeri a kéréstípusokat.
  • Ajax műveletkomponensek - AjaxCommandButton, AjaxCommandLink, AjaxPoll, AjaxSupport és más műveletkomponensek is használhatóak Ajax-kérések küldésére.
  • AJAX Containers - Az AjaxContainer egy interface , amivel JSF oldalak olyan részeit lehet leírni, amik Ajax kérés során dekódolódnak. Az AjaxViewRoot és az AjaxRegion ennek az interface-nek az implementációi.
  • JavaScript Engine - A RichFaces JavaScript motor a kliensoldalon fut. Különböző területeket frissít a JSF oldalon az ajaxos válaszok alapján. A JavaScript motor szolgáltat egy API-t, így a fejlesztőnek nem kell saját JavaScript funkciókat megvalósítania.

Egy egyszerű JSF oldal RichFaces naptár komponenssel

<!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>

Ez az eredménye a fent írt kódnak:

 

Jegyzetek szerkesztés

  1. Max Katz, Exadel: Ajax4jsf and RichFaces - historical perspective, 2008. augusztus 15. [2009. február 2-i dátummal az eredetiből archiválva]. (Hozzáférés: 2011. június 4.)

Külső hivatkozások szerkesztés