Java


Creating open source code is helping me as a developer

When creating the github project and transferring the code for jsf-updates-angular I realized that opening up my code to the public, is helping me being a developer. While creating the company internal code that jsf-updates-angular is based on, it was done as a part of a bigger code base. It was only a small part […]

JSF-updates-angular – How to use angularJS directives to replace JSF components

Writing JSF components is hard and complicated. No one in their right mind writes them. Except when you are a framework developer. My team is struggling for some time now with Primefaces and its (natural) limitations where one cannot simply change the HTML output to the designers need. So, I spent some days this fall, […]

Appcache Manifest erstellen und in einer angularJS App integrieren

Wer eine ausgewachsene App entwickelt, die aus rein statischen Dateien (*js, *.css, *.html) besteht und die dynamischen Daten ausschließlich über einen REST-Server nachlädt, sollte sich in jedem Fall mal mit dem HTML5 Appcache beschäftigen. In so einem Fall kann man die (z.B. bei alistapart etwas übertriebenen beschriebenen) Nachteile nämlich ruhig ignorieren. Der Vorteil für den […]

JBoss und JaxRS: Warum Jersey die bessere Implementierung ist

Wir benutzen momentan die JBoss 7.1.1 Community Edition, wobei wir momentan – auch wegen der JaxRS Implementierung, aber bei weitem nicht nur – prüfen, die Enterprise Edition zu kaufen. Als JEE6-Container muss JBoss natürlich auch eine JaxRS (Restful Webservices) Implementierung mitliefern. Statt der Referenzimplementierung Jersey hat Red Hat/JBoss sich für eine eigene Implementierung entschieden: RestEasy. […]

Milestone-Releases von JSF 2.2 auf Glassfish 3.1 testen

Markus Eisele hat heute eine Anleitung veröffentlicht, wie man aktuelle Milestone-Releases von Mojarra JSF 2.2 auf Glassfish 3.1.2.2 testen kann, sodass man keinen JEE7 Container wie Glassfish 4 mehr braucht. Trotz dass Mojarra JSF 2.2 eigentlich kompatibel zu JEE6 Containern ist und somit eigentlich keine Probleme machen sollte, muss man in der aktuellen Version von […]

HTML5 Friendly Markup in JSF 2.2

Ed Burns (Spec Lead für JSF) hat heute in seinem Blog ein paar Informationen zum Thema JSF 2.2 veröffentlicht: HTML5 Friendly Markup in JSF 2.2 Leider hat sein Blog-Parser den Beispiel-Code völlig zerpflückt, sodass nicht mehr viel zu erkennen ist. Als Quintessenz aus seinem Text entnehme ich, dass er in Zeiten von modernen Single Page […]

The Power of preRenderComponent

Seit Jahren führen wir immer wieder Diskussionen über die richtige Methode wann und wo die Daten in einem JSF-Controller geladen werden sollen. In JSF 1.x waren solche Konstrukte durchaus üblich: Die Daten wurden also in einem getter einer JSF-Komponente geladen, wenn das Datenobjekt noch null ist. Dieser Code ist nicht nur hässlicher Stil und missbraucht […]

OmniFaces – Das Schweizer Taschenmesser für JSF-Entwickler

Wer sich ein bisschen bei Google nach JSF-Tipps umsieht, wird schnell auf stackoverflow stossen, wo der Autor [highlight2]balusc[/highlight2] schon lange eine Koryphäe ist. Seit einem halben Jahr stellt er eine eigene JSF-Bibliothek zum Download zur Verfügung, die man durchaus als Schweizer Taschenmesser für JSF-Entwickler bezeichnen könnte: OmniFaces. OmniFaces ist keine Komponenten-Bibliothek wie PrimeFaces oder RichFaces, […]

Automatisches Styling von nicht validen Eingabe-Komponenten

Cagatay Civici (Lead Developer von PrimeFaces) hat heute in seinem Blog einen Artikel veröffentlicht, der beschreibt, wie man Input Elementen auf einfachem Weg ein anderes Styling verpasst, wenn die Validierung fehlgeschlagen ist: Styling Invalid Input Fields with JSF. Die vorgestellte Möglichkeit setzt dabei auf einen PostValidationListener, der am Ende der Validierungsphase aufgerufen wird und alle […]

Verwendung von “gleichzeitigen” Ajax-Events vermeiden

Auf komplexeren “ajaxifzierten” Seiten ist es leicht möglich nur schwer zu identifzierende Probleme zu erzeugen, wenn mehrere Javascript-Events aufgrund einer einzelnen Benutzer-Aktion ausgelöst werden. Als Beispiel soll folgender Code dienen: