Potrzebuję dodać programowo zasoby JS i CSS do <h:head>
strony JSF. Nie jest jasne, jak to osiągnąć. Czy ktoś mógłby podać przykład lub przykład kickoff?Jak programowo dodać zasoby JS i CSS do <h:head>?
Odpowiedz
To zależy od tego, gdzie dokładnie chcesz zadeklarować ratunek. Normalnie, jedynym powodem, dla którego można je programowo zadeklarować, jest niestandardowy kod UIComponent
lub Renderer
, który generuje kod HTML, który z kolei wymaga tych zasobów JS i/lub CSS. Następnie muszą one zostać zadeklarowane przez @ResourceDependency
lub @ResourceDependencies
.
@ResourceDependency(library="mylibrary", name="foo.css")
public class FooComponentWithCSS extends UIComponentBase {
// ...
}
@ResourceDependencies({
@ResourceDependency(library="mylibrary", name="bar.css"),
@ResourceDependency(library="mylibrary", name="bar.js")
})
public class BarComponentWithCSSandJS extends UIComponentBase {
// ...
}
Ale jeśli naprawdę trzeba zadeklarować je gdzie indziej, na przykład w sposobie podkład fasoli który wywołał przed renderowanie odpowiedzi (w przeciwnym razie jest to po prostu zbyt późno), to można to zrobić przez UIViewRoot#addComponentResource()
. Zasób komponentu musi być utworzony jako UIOutput
mający typ renderera javax.faces.resource.Script
lub javax.faces.resource.Stylesheet
, reprezentujący odpowiednio pełną wartość: <h:outputScript>
lub <h:outputStylesheet>
. Atrybuty library
i name
można po prostu umieścić w mapie atrybutów.
UIOutput css = new UIOutput();
css.setRendererType("javax.faces.resource.Stylesheet");
css.getAttributes().put("library", "mylibrary");
css.getAttributes().put("name", "bar.css");
UIOutput js = new UIOutput();
js.setRendererType("javax.faces.resource.Script");
js.getAttributes().put("library", "mylibrary");
js.getAttributes().put("name", "bar.js");
FacesContext context = FacesContext.getCurrentInstance();
context.getViewRoot().addComponentResource(context, css, "head");
context.getViewRoot().addComponentResource(context, js, "head");
Możesz dodać skrypt i styl zasobów strony tak:
var head = document.getElementsByTagName("head")[0];
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "xxxx.js";
head.appendChild(s);
s = document.createElement("style");
s.type = "text/css"
s.src = "yyy.css";
head.appendChild(s);
Albo w postaci funkcji:
function addScript(path) {
var head = document.getElementsByTagName("head")[0];
var s = document.createElement("script");
s.type = "text/javascript";
s.src = path;
head.appendChild(s);
}
function addCSSFile(path) {
var head = document.getElementsByTagName("head")[0];
var s = document.createElement("style");
s.type = "text/css";
s.src = path;
head.appendChild(s);
}
Chociaż jest to poprawne, gdy jest używane w JavaScript, nie pomaga to w kontekście JSF. –
- 1. Node.js, Express i css, js, zasoby obrazu
- 2. Jak dodać niestandardowe css i js do kątowego 4
- 3. Jak dodać JS programowo w Magento?
- 4. Jak dodać zasoby biblioteczne do projektu Cordova?
- 5. Jak dodać zasoby do ścieżki klasy
- 6. Zasoby Wicket & CSS
- 7. Jak dodać zasoby do biblioteki Flex?
- 8. Dodawanie niestandardowych stylów CSS i JS do Shopify
- 9. Jak dodać style CSS w app.css dla ember js addon
- 10. Brak wersji css i js atrybutu css
- 11. Jak agregować zasoby JS na Mean.io
- 12. Jak dodać RollingFlatFileTraceListenerData programowo
- 13. jak cache css, obrazy i js?
- 14. Jak programowo dodać EditTextPreferences do mojego PreferenceFragment?
- 15. Jak programowo dodać odwołanie do projektu VBA?
- 16. Jak dodać kod JS do formularza encji?
- 17. Jak dołączyć bootstrap css i js do aplikacji reactjs?
- 18. Jak dołączyć js i CSS do JSP ze sprężyną MVC
- 19. Jak dodać nowy wiersz do DataGridView programowo
- 20. Dodawanie pliku CSS lub JS do MediaWiki?
- 21. mod_rewrite nie ładowanie plików css i js
- 22. Jak dodać przewijalną NSTableView programowo
- 23. Jak dodać TITLE i ALT do obrazu tła (CSS Sprites)?
- 24. Jak dodać klasy CSS i identyfikator do akapitów w CKEditorze?
- 25. Jak programowo dodać fragment mapy?
- 26. Jak zrobić make build maven dodać zasoby do classpath?
- 27. Spring 3 Zasoby MVC i tag <mvc: resources />
- 28. Metody minimalizowania js i css w aplikacjach grailsów
- 29. Jak dodać klasę css do przycisku z3c.form
- 30. zawijania CSS/js
Tutaj znajdziesz informacje gdzie umieścić deklarację: http://stackoverflow.com/questions/3586629 – Thor
Świetnie! To uratowało mój dzień. –
Ja także borykałem się z tym, gdzie dodać deklarację. Skończyło się na dodaniu go do konstruktora mojego UIComponent. –