This page (revision-8) was last changed on 04-Sep-2019 06:58 by Dieter Käppel

This page was created on 14-Sep-2016 14:10 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
8 04-Sep-2019 06:58 9 KB Dieter Käppel to previous
7 04-Sep-2019 06:58 8 KB Dieter Käppel to previous | to last
6 15-Sep-2016 19:47 8 KB Dieter Käppel to previous | to last
5 14-Sep-2016 14:39 8 KB Dieter Käppel to previous | to last
4 14-Sep-2016 14:37 7 KB Dieter Käppel to previous | to last
3 14-Sep-2016 14:30 6 KB Dieter Käppel to previous | to last
2 14-Sep-2016 14:25 5 KB Dieter Käppel to previous | to last
1 14-Sep-2016 14:10 2 KB Dieter Käppel to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed one line
Diese [JSF]-Erweiterung ermöglicht es, einfache [Javascript] und [JQuery|https://de.wikipedia.org/wiki/JQuery] Komponenten JSF-Konform zu implementieren. [JSF-JQuery] enthält zwar einige fertig einsatzfähige Komponenten, versteht sich allerdings vorwiegend als [API|https://de.wikipedia.org/wiki/Programmierschnittstelle] zum Implementieren eigener Komponenten.
Diese [JSF]-Erweiterung ermöglicht es, einfache [Javascript] und [JQuery|https://de.wikipedia.org/wiki/JQuery] Komponenten JSF-Konform zu implementieren. [JSF-JQuery] enthält zwar einige fertig einsatzfähige Komponenten, versteht sich allerdings vorwiegend als [API|https://de.wikipedia.org/wiki/API] zum Implementieren eigener Komponenten.
At line 91 removed 22 lines
!!JSON Parameter
Mit dem Parameter-Set <j:json>, <j:element>, <j:array> und <j:raw> kann ein JSON-Parameter erzeugt werden. Die Tags können an allen Stellen verwendet werden, die UIParameter akzeptieren (also <f:param>). Wie etwa <h:link> im folgenden Beispiel zeigt:
{{{
<h:link value="#{transaction.signal.symbol}" outcome="/chart.xhtml">
<j:json name="analyzer">
<j:array name="generators">
<j:element>
<j:element name="type" value="stockDataMongoGenerator"/>
<j:element name="name" value="#{transaction.signal.symbol}"/>
<j:element name="symbol" value="#{transaction.signal.symbol}"/>
<j:element name="count" value="#{simulatorController.ticks}"/>
</j:element>
<j:element>
<j:element name="type" value="indicatorGenerator"/>
<j:raw name="indicator" value="#{simulatorController.json}"/>
</j:element>
</j:array>
</j:json>
</h:link>
}}}
At line 164 removed 20 lines
!!Komponenten und Scripte
Die Basisklasse JQueryComponent enthält bewusst noch keine Annotation mit ResourceDependencies, sodass man frei in der Wahl der Bibliotheken ist. Insbesondere, ob man Primefaces-JQuery oder eine eigene JQuery bzw. ganz andere Javascript-Bibliothek verwenden möchte.
Hat man Primefaces im Projekt, werden die meisten Komponenten so aussehen:
{{{
@FacesComponent(namespace = JQueryComponent.NAMESPACE, createTag = true)
@ResourceDependencies({
@ResourceDependency(name = "jquery/jquery.js", library = "primefaces"),
@ResourceDependency(name = "jsf-jquery.js", library = "jquery-js")
})
public class Test extends JQueryComponent {
[...]
}
}}}
Damit stellt [JSF] automatisch sicher, dass sich die benötigten Scripte auf der Web-Seite befinden und lädt diese gegebenenfalls nach.
Die Annotation FacesComponent kann dazu verwendet werden, um den Tag direkt zu erzeugen, ohne eine taglib.xml zusätzlich anlegen zu müssen.