Wozu dient die JSF-Ressourcenbibliothek und wie soll sie verwendet werden?

Die JSF<h:outputStylesheet>, <h:outputScript> und<h:graphicImage> Komponenten haben einelibrary Attribut. Was ist das und wie soll das verwendet werden? Es gibt viele Beispiele im Web, die es wie folgt mit dem allgemeinen Inhalt / Dateityp verwendencss, js undimg (oderimage) als Bibliotheksname abhängig vom verwendeten Tag:

<h:outputStylesheet library="css" name="style.css" />
<h:outputScript library="js" name="script.js" />
<h:graphicImage library="img" name="logo.png" />

Wie ist es nützlich? Daslibrary Der Wert in diesen Beispielen scheint nur das zu wiederholen, was bereits durch den Tag-Namen dargestellt wurde. Für ein<h:outputStylesheet> Es basiert auf dem Tag-Namen, der bereits offensichtlich ist, dass es eine "CSS-Bibliothek" darstellt. Was ist der Unterschied zu dem Folgenden, das genauso funktioniert?

<h:outputStylesheet name="css/style.css" />
<h:outputScript name="js/script.js" />
<h:graphicImage name="img/logo.png" />

Auch die generierte HTML-Ausgabe ist etwas anders. Gegeben ein Kontextpfad von/contextname undFacesServlet Mapping auf ein URL-Muster von*.xhtmlErsteres generiert den folgenden HTML-Code mit dem Bibliotheksnamen als Anforderungsparameter:

<link rel="stylesheet" type="text/css" href="/contextname/javax.faces.resource/style.css.xhtml?ln=css" />
<script type="text/javascript" src="/contextname/javax.faces.resource/script.js.xhtml?ln=js"></script>
<img src="/contextname/javax.faces.resource/logo.png.xhtml?ln=img" alt="" />

Während letztere den folgenden HTML-Code mit dem Bibliotheksnamen nur im Pfad der URI generiert:

<link rel="stylesheet" type="text/css" href="/contextname/javax.faces.resource/css/style.css.xhtml" />
<script type="text/javascript" src="/contextname/javax.faces.resource/js/script.js.xhtml"></script>
<img src="/contextname/javax.faces.resource/img/logo.png.xhtml" alt="" />

Der letztgenannte Ansatz ist im Nachhinein auch sinnvoller als der erstgenannte. Wie genau ist das?library Attribut dann nützlich?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage