Homepage email me grab rss 2.0 feed

Ajax Funktionalitäten in RichFaces

Mittels dem im RichFaces Framework integrierten Ajax Framework Ajax4jsf lassen sich mittlerweile spielend einfach Ajax Funktionalitäten in JSF Anwendungen implementieren.

Die in Ajax4jsf enthaltenen Komponenten bieten dabei die Möglichkeit bestehende JSF Komponenten um Ajax Funktionalitäten zu erweitern oder JSF Komponenten ganz zu ersetzen. Grundsätzlich können dabei alle JSF Komponenten erweitert werden, erfahrungsgemäß arbeiten die Ajax4jsf Komponenten jedoch am Besten mit den RichFaces Komponenten zusammen.

Das Prinzip möchte ich an einem typischen Ajax-Beispiel vorstellen: dem teilweisen Update einer HTML-Seite beim Sortieren einer Tabelle.

<rich:dataTable id="dataTable" value="#{users}" var="user">
 <rich:column headerClass="sortable">
  <f:facet name="header">
   <a4j:commandLink
    actionListener="#{pageBean.sortDataTable}"
    reRender="dataTable">
    <f:attribute name="sortField" value="getUsername" />
    <h:outputText value="Username" />
   </a4j:commandLink>
  </f:facet>
  <h:outputText value="#{user.username}" />
 </rich:column>
 .
 .
 .
</rich:dataTable>

Um in diesem Beispiel beim Sortieren einer Tabelle nur die Tabelle neu zu rendern, ohne dass ein “kompletter” Neuaufbau der HTML-Seite durchgeführt wird, muss prinzipiell nur der Standard JSF Tag <h:commandLink> durch das Ajax4jsf-Pendant <a4j:commandLink> ersetzt werden.

Dieser Tag bietet die Möglichkeit dem Attribut reRender die ID einer JSF Komponente zu übergeben, welche beim erfolgreichen Ausführen der Methode im Attribut actionListener neu gerendert wird.
Im obigen Beispiel wird durch reRender="dataTable" bestimmt, dass nur die JSF Komponente mit dieser ID (nämlich <rich:dataTable id="dataTable" ...></rich:dataTable>) neu gerendert wird.

Ajax4jsf bietet außerdem viele weitere Ajax Komponenten und Funktionalitäten. Eine Übersicht und genaue Beschreibung dieser Komponenten kann der offiziellen Dokumentation entnommen werden – eine weitere empfehlenswerte Ressource stellt außerdem die RichFaces Live Demo dar, in welcher alle Ajax4jsf Komponenten auch mit Beispielen vorgestellt werden.

2 Kommentare

  1. #1 Stefan

    aha aha aha;-)

  2. #2 Matthias - http://altes-kind.de

    ja ja ja ;-)

Schreib' mir was nettes... ;-)