Do czego służy biblioteka zasobów JSF i jak powinna być używana?

JSF<h:outputStylesheet>, <h:outputScript> i<h:graphicImage> komponenty mająlibrary atrybut. Co to jest i jak należy to wykorzystać? Istnieje wiele przykładów w sieci, które używają go w następujący sposób ze wspólną zawartością / typem plikucss, js iimg (lubimage) jako nazwa biblioteki w zależności od użytego tagu:

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

Jak to jest przydatne? Thelibrary wartość w tych przykładach wydaje się być po prostu powtarzaniem wszystkiego, co już zostało reprezentowane przez nazwę znacznika. Dla<h:outputStylesheet> opiera się na nazwie znacznika już oczywistej, że reprezentuje „bibliotekę CSS”. Jaka jest różnica z następującymi, które również działają w ten sam sposób?

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

Ponadto wygenerowany wynik HTML jest nieco inny. Biorąc pod uwagę ścieżkę kontekstu/contextname iFacesServlet mapowanie wzorca adresu URL*.xhtml, pierwszy generuje następujący kod HTML z nazwą biblioteki jako parametr żądania:

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

Podczas gdy ten drugi generuje następujący kod HTML z nazwą biblioteki tylko w ścieżce 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="" />

To drugie podejście z perspektywy czasu jest również bardziej sensowne niż poprzednie. Jak dokładnie jestlibrary przydatny atrybut?

questionAnswers(1)

yourAnswerToTheQuestion