Ich bin auf Mojarra 2.2.13 und mein Projekt verwendet PrimeFaces 6.0.JSF-Ressource (JavaScript) nicht gerendert mit addComponentResource
Ich schreibe meine eigene JSF . Es erfordert ein wenig JavaScript in webapp/resources/js/charts.min.js
. Wenn ich meine Komponente mit Anmerkungen versehen mit @ResourceDependency
das Skript ist gemacht:
@ResourceDependency(name = "js/charts.min.js", target = "head")
Aber muss ich nicht immer gemacht werden. So war ich bedingt versuchen, eine Komponente Ressource zu der Ansicht Wurzel hinzufügen aus der encodeBegin(FacesContext context)
Methode:
if (condition) {
UIOutput js = new UIOutput();
js.setRendererType("javax.faces.resource.Script");
js.getAttributes().put("name", "js/charts.min.js");
context.getViewRoot().addComponentResource(context, js, "head");
writer.startElement("div", null);
writer.writeAttribute("class", "myChart", null);
// ... write chart data
writer.endElement("div");
}
Dies gilt nicht das Skript machen (myChart
ist obwohl gemacht). In meinem Protokoll werden keine Fehler angezeigt. Irgendwelche Ideen was ich überprüfen oder verbessern könnte?
Ich habe auch ohne PrimeFaces getestet (nicht sicher, ob sein Head Renderer dies verursacht), aber das Ergebnis ist das gleiche.
Haben Sie versuchen, das jstl-Tag statt der Java-Code-Einstellungen? –
@TheBitman Nr. Wie ist das beim Erstellen einer UIComponent hilfreich? –
Ich dachte, vielleicht könnten Sie Js LINK in der JSF-Datei anstelle der Komponente filtern. Aber sag die Wahrheit ich verstehe deine Frage nicht total :) –