Archive

Archive for the ‘JSF’ Category

Ruby on Rails? Try this one!

Februar 14th, 2011

RichFaces 4 Dokumentation

Oktober 8th, 2010

JSF 2.0 - Die neuen Features

März 9th, 2009

Auf der Mojarra-Projektseite steht inzwischen die Public Review 2 von JSF 2.0 zum Download und Begutachtung zur Verfügung.

Diese JSF-Version ist die erste wirklich neue JSF-Version seit der Vorstellung von JSF im Jahr 2004.

Sie adressiert unter anderem eine Reihe von “Painpoints” die die Entwicklung von Webanwendungen mit JSF “ein wenig verkompliziert” und eine Unmenge von Diskussionen über JSF verursacht haben.

Unter anderem fallen uns hier die Stichworte “JSP” und “zu viele XML-Deklarationen” ein.

Wir wollen an dieser Stelle erst einmal eine Liste aller Neuerungen, ohne Garantie auf Vollständigkeit, aufführen. In weiteren Blog-Einträgen werden wir auf einige dieser Neuerungen detaillierter eingehen.

  1. Eine neue PDL (Page Declaration Language) basierend auf Facelets.
  2. Neue Scopes: View- und Component-Scope.
  3. Managed Beans können mit Hilfe von Annotations deklariert werden.
  4. Vereinfachte Entwicklung von Komponenten (ohne Java).
  5. Resource-Handling-Mechanismus für CSS, Grafiken und Skripte.
  6. System-Events.
  7. Deklaration eines Projekt-Stage-Parameters für die Stufen : Production, Development und Test.
  8. Einen neuen Mechanismus für die Ajax-Unterstützung.
  9. Scripting mit Groovy, ermöglicht u.a. Änderungen in ManagedBeans ohne Redeployment direkt zu testen.

Georges Margaritis JSF ,

JSFUnit 1.0 GA veröffentlicht.

März 3rd, 2009

JBOSS hat die erste GA-Version von JSFUnit veröffentlicht.

JSFUnit ist ein Testframework für JSF. Da es innerhalb des Webcontainers (Tomcat …)
abläuft, werden für die Tests keine Mock-Objekte benötigt.

Nach jedem Faces-Request ermöglicht es den Zugriff auf den FacesContext und damit auf die
gesamte JSF-Anwendung.

JSFUnit kann mit allen Servern die JSF unterstützen eingesetzt werden und unterstützt auch
die neue JSF 2.0 Version.

Georges Margaritis JSF

Methodenaufruf in einer generischen Facelet-Komponente

Dezember 10th, 2008

Bei der Entwicklung generischer Facelets-Komponenten ist es oft erforderlich Methoden einer Managed Bean aufzurufen.

Das folgende Beispiel demonstriert so eine Komponente, die der Einfacheit halber nur aus einem CommandLink-Tag besteht.  In dem Attribut “action” des  Tag wird die Navigationsmethode einer ManagedBean aufgerufen.

Facelet-Komponente “commandLink.xhtml” :

<ui:composition  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:t="http://myfaces.apache.org/tomahawk”>

    <t:commandLink id=”#{id}” action=”#{bean[method]}” value=”#{value}”/>

</ui:composition>

Diese Facelet-Komponente kann nun in weiteren Facelets (nachdem sie in der taglib.xml deklariert wurde)  parametrisiert aufgerufen werden :

<tf:commandLink
value=”TestCommandLink”
id=”anyId”
bean=”#{TestBean}”
method=”testCommandLink” />

In der Managed Bean “TestBean.java” ist die Navigationsmethode deklariert :

public String testCommandLink(){
return “navigationCase”;
}

Georges Margaritis JSF

Zeitzone einstellen mit <f:convertDateTime>

Oktober 17th, 2008

<f:convertDateTime> ist ein JSF-Tag zur Darstellung des aktuellen Datums und der Uhrzeit.

Ein Beispiel für die Anwendung dieses Tag ist :

<t:outputText value="#{myBean.date}">
<f:convertDateTime pattern="dd.MM.yyyy HH:mm:ss"/>

</t:outputText>

Das Attribut pattern stellt die Formatierungsregel für das Datum dar.

Ohne die Angabe weiterer Attribute wird die Zeit in GMT angegeben, was für Deutschland natürlich falsch ist.

Für die Darstellung der Uhrzeit gibt es das Attribut timeZone. Eine Angabe von timeZone=”GMT+2″ ist aber nicht korrekt, da diese den Wechsel Winter-/Sommerzeit nicht berücksichtigt.

Das korrekte Beispiel mit Angabe der Uhrzeit ist :

<t:outputText value="#{myBean.date}">

<f:convertDateTime pattern="dd.MM.yyyy HH:mm:ss" timeZone="Europe/Berlin" />

</t:outputText>

Georges Margaritis JSF

RichFaces XHTML Parser

September 12th, 2008

RichFaces (vormals Ajax4sf) ist eine Komponentensammlung für JSF.

Fast alle Komponenten verfügen über eine Ajax-Funktionalität die es ermöglicht nur Teile der Seite nach einem Ajax-Request zu rendern. Dieses wird durch einen
Servlet-Filter erreicht, der alle Responses mit Hilfe eines Parsers (Tidy) parst. Dies ist notwendig um die Daten aus dem Response in den DOM-Baum einzubauen.

Das Parsen aller Responses erzeugt natürlich einen Overhead und damit auch Performanceverluste.

Optimieren kann man dies, in dem man den Parser so konfiguriert, das nur die Daten aus einem Ajax-Request geparst werden. Dafür setzt man das Attribut “forceparser” dieses Filters auf “false“.

Die Deklaration des Filters in der “web.xml” :


<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
<init-param>
<strong> <param-name>forceparser</param-name>
<param-value>false</param-value></strong>
</init-param>
</filter>

Georges Margaritis JSF

FacesTrace

Mai 2nd, 2008

FacesTrace ist eine Open-Source-Library die in die Toolbox eines jeden JSF-Entwicklers gehört.

Sie stellt den Request-Response-Lifecycle einer JSF-Seite grafisch dar. Zusätzlich werden in einer Tabelle alle Variablen in allen Scopes, die FacesMessages und der UI-Komponentenbaum angezeigt.

Wir setzen FacesTrace auch in unserem JSF Einführung-Seminar ein, um unseren Seminarteilnehmern den JSF-Request-Lifecycle näher zu bringen.

Georges Margaritis JSF ,