Ressourcenbestellung in PrimeFaces

Seit PrimeFaces 3.0 bietet es eine sehr anpassbare Ressourcenreihenfolge.

Siehe folgende Reihenfolge:

{leer} 1. "Erste" Facette, falls definiert.

  <f:facet name="first">
    <!-- load css, js or others -->
  </f:facet>

{leer} 2. PrimeFaces - JSF-registriertes CSS. 3. PrimeFaces - Theme CSS. 4. "mittlere" Facette, falls definiert.

  <f:facet name="middle">
    <!-- load css, js or others -->
  </f:facet>

{leer} 5. PrimeFaces - JSF registriert JS. 6. h: Kopfinhalt.

  <h:head>
    <!-- load css, js or others -->
  </h:head>

{leer} 7. "Letzte" Facette, falls definiert.

  <f:facet name="last">
    <!-- load css, js or others -->
  </f:facet>

1. Beispiel

Ein häufiger Anwendungsfall ist das Hinzufügen des Meta-Tags über die Facette " first " und das Überschreiben von "css" über die Facette " last ". Die "mittlere" Facette wird selten verwendet.

demo.xhtml

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
  <h:outputStylesheet library="default" name="css/bootstrap.css"/>
  <h:outputScript library="primefaces" name="jquery/jquery.js"/>

  <f:facet name="first">
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
    <title>Resource ordering in PrimeFaces</title>
  </f:facet>
</h:head>

<h:body>
  <f:facet name="last">
    <h:outputStylesheet library="default" name="css/style.css"/>
  </f:facet>
</h:body>

2. Ergebnis

Über den JSF-Tags wird die folgende HTML-Ausgabe generiert:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <!-- comment : "first" faces -->
  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
  <title>Resource ordering in PrimeFaces</title>

  <!-- comment : PF-JSF registered CSS or Theme CSS -->
  <link type="text/css" rel="stylesheet"
     href="/mkyong/javax.faces.resource/css/bootstrap.css.jsf?ln=default&v=1__0"/>
  <link type="text/css" rel="stylesheet"
     href="/mkyong/javax.faces.resource/primefaces.css.jsf?ln=primefaces"/>

  <!-- comment : "last" faces -->
  <link type="text/css" rel="stylesheet"
     href="/mkyong/javax.faces.resource/css/style.css.jsf?ln=default&v=1__0"/>

  <script type="text/javascript"
       src="/mkyong/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces">
  </script>
  <script type="text/javascript"
       src="/mkyong/javax.faces.resource/primefaces.js.jsf?ln=primefaces">
  </script>
</head>
<body>
    ...
</body>
...