JSF-Komponenten dynamisch erstellen

Variante 1:

import javax.faces.context.FacesContext;
import javax.faces.application.Application;
import javax.faces.component.html.HtmlInputText;
 
...
 
FacesContext context = FacesContext.getCurrentInstance();
Application app = context.getApplication();
HtmlInputText input = (HtmlInputText) app.createComponent(HtmlInputText.COMPONENT_TYPE);

Variante 2:

import javax.faces.component.html.HtmlInputText;
 
...
 
HtmlInputText input = new HtmlInputText();

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>