Qual è la libreria di risorse JSF e come dovrebbe essere utilizzata?


Answers

Question

I componenti JSF <h:outputStylesheet> , <h:outputScript> e <h:graphicImage> hanno un attributo di library . Cos'è questo e come dovrebbe essere usato? Ci sono molti esempi sul web che lo usano come segue con il contenuto comune / tipo di file css , js e img (o image ) come nome della libreria a seconda del tag usato:

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

Come è utile? Il valore della library in questi esempi sembra ripetere semplicemente ciò che è già stato rappresentato dal nome del tag. Per un <h:outputStylesheet> si basa sul nome del tag già evidente che rappresenta una "libreria CSS". Qual è la differenza con quanto segue che funziona anche allo stesso modo?

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

Inoltre, l'output HTML generato è leggermente diverso. Dato un percorso di contesto di /contextname e mappatura di FacesServlet su un pattern URL di *.xhtml , il primo genera il seguente codice HTML con il nome della libreria come parametro di richiesta:

<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="" />

Mentre quest'ultimo genera il seguente codice HTML con il nome della libreria proprio nel percorso dell'URI:

<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="" />

Quest'ultimo approccio, a ben vedere, ha anche più senso del precedente approccio. Quanto è quindi utile l'attributo della library ?




Links