JSF-Speicherort für Ressourcen (CSS / JS, …)

Damit in einer JSF-Seite verschiedene Dateien (Cascading Style Sheets, JavaScripts, …) aufgefunden und inkludiert werden können, müssen diese Dateien unter einem bestimmten Hauptordner abgelegt werden. Standardmäßig gültig sind dafür folgende Pfade:

src\main\webapp\resources
src\main\resources\META-INF\resources

Die jeweiligen Dateien können dann mit Angabe ihres Unterordners (library) und Namens (name) eingebunden werden:

Beispiel

  <h:outputStylesheet library="libs/pikaday/1.2.0" name="pikaday.css" />
  <h:outputScript library="libs/pikaday/1.2.0" name="pikaday.js" />

Add Apache MyFaces Tomahawk dependencies with Maven

Repository:

<repository>
  <id>apache-repo</id>
  <name>apache-repo</name>
  <url>http://myfaces.zones.apache.org/dist/maven-repository</url>
</repository>
 
<repository>
  <id>ibiblio</id>
  <name>ibiblio</name>
  <url>http://www.ibiblio.org/maven2</url>
</repository>

Dependencies:

<dependency>
  <groupId>org.apache.myfaces.core</groupId>
  <artifactId>myfaces-impl</artifactId>
  <version>2.2.0</version>
  <scope>compile</scope>
  <type>jar</type>
</dependency>
 
<dependency>
  <groupId>org.apache.myfaces.core</groupId>
  <artifactId>myfaces-api</artifactId>
  <version>2.2.0</version>
  <scope>compile</scope>
  <type>jar</type>
</dependency>
 
<dependency>
  <groupId>org.apache.myfaces.tomahawk</groupId>
  <artifactId>tomahawk</artifactId>
  <version>1.1.14</version>
  <scope>compile</scope>
  <type>jar</type>
</dependency>

Add PrimeFaces dependencies with Maven

Repository:

<id>prime-repo</id>  
  <name>PrimeFaces Maven Repository</name>  
  <url>http://repository.primefaces.org</url>  
  <layout>default</layout>  
</repository>

Dependencies:

<dependency>
  <groupId>org.primefaces</groupId>
  <artifactId>primefaces</artifactId>
  <version>3.5</version>
  <type>jar</type>
</dependency>
 
<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3</version>
  <type>jar</type>
</dependency>

Objekt aus JSF Custom Validator erhalten

Eine Dropdown-Liste in Form eines f:selectItems-Tags in JSF 2.2 kann einzelne Einträge nur in Form von Strings zurückgeben. Möchte man aber ein Objekt von einem Eintrag aus der Dropdown-Liste haben, so muss man einen JSF Converter implementieren.

Bei Verwendung eines Converters wird für jeden Eintrag aus der Dropdown-Liste die getAsString-Methode ausgeführt, welche das gebundene Objekt Objekt als Parameter erhält. Das gebundene Objekt kann dann zusammen mit einem Key über den FacesContext in der Session gespeichert werden.

Bei der Auswahl eines Elements im Dropdown-Element wird dann die getAsObject-Methode des Convertes aufgerufen. Die getAsObject-Methode enthält entgegen der getAsString-Methode nicht das direkte Objekt sondern nur den Key, den die getAsString zurückgibt. Der erhaltene Key kann aber genutzt werden, um das Objekt wieder aus der Session zu lesen. Der folgende Code zeigt diesen Ansatz:
Objekt aus JSF Custom Validator erhalten weiterlesen