This page (revision-11) was last changed on 15-Sep-2016 19:49 by Dieter Käppel

This page was created on 22-Nov-2013 10:30 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
11 15-Sep-2016 19:49 8 KB Dieter Käppel to previous
10 15-Sep-2016 19:49 8 KB Dieter Käppel to previous | to last
9 23-Dec-2013 03:01 8 KB Dieter Käppel to previous | to last
8 23-Dec-2013 03:00 8 KB Dieter Käppel to previous | to last
7 25-Nov-2013 19:35 8 KB Dieter Käppel to previous | to last
6 25-Nov-2013 19:33 8 KB Dieter Käppel to previous | to last
5 25-Nov-2013 19:32 7 KB Dieter Käppel to previous | to last
4 25-Nov-2013 19:28 7 KB Dieter Käppel to previous | to last
3 25-Nov-2013 19:20 6 KB Dieter Käppel to previous | to last
2 22-Nov-2013 14:05 6 KB Dieter Käppel to previous | to last
1 22-Nov-2013 10:30 7 KB Dieter Käppel to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed one line
Mit sogenannten Push können Informationen aktiv an den Browser übertragen werden. Vor allem ist es dadurch möglich, eine Vielzahl von Benutzern gleichzeitig über ein Ereignis zu informieren.
[{Image src='JSF Ext Tags/push-tag.PNG' width='100%' style='float: left;'}]
At line 3 added 4 lines
[JSF Ext Push] ist Bestandteil von [JSF Ext] zur Übertragung von Änderungen aufgrund eines Server-Ereignisses.
In den meisten Fällen werden Daten aufgrund einer Browser-Anforderungen übertragen. In einigen Fällen soll eine Aktualisierung des Browser-Inhalts aufgrund eines anderen Ereignis erfolgen, das zunächst nur am Server vorliegt. Mit sogenannten Push können Informationen aktiv an den Browser übertragen werden. Vor allem ist es dadurch möglich, eine Vielzahl von Benutzern gleichzeitig über ein Ereignis zu informieren.
At line 19 added 3 lines
!!!Inhalt
[{TableOfContents title='Page contents' numbered='true'}]
At line 35 changed one line
!Direct- und AJAX-Mode
!!Direct- und AJAX-Mode
At line 39 changed 2 lines
||Rendering|Inhalt wird nur bei dem Client gerendert, der den Event ausgelöst hat|Inhalt wird für jeden Client gerendert
||Effizienz|Effizienter Modus, da das HTML-Update direkt an alle Clients geschickt werden kann|Rendering wird für jeden Client getrennt gerendert
||Rendering|Inhalt wird im Context des Clients gerendert, der den Event ausgelöst hat und das Resultat auf allen Clients verteilt|Inhalt wird für jeden Client unabhängig gerendert
||Effizienz|Effizienter Modus, da das HTML-Update direkt an alle Clients geschickt werden kann|Für jeden Client wird ein kompletter JSF-Lifecycle durchgeführt inklusive Rendering
At line 45 changed one line
!Rendering
!!Rendering
At line 50 changed one line
!Channel
!!Channel
At line 62 added 27 lines
!!Kombination mit Render-Tag
Der Push-Tag arbeitet mit vielen anderen Tags zusammen. Eine interessante Kombination ist der Render-Tag, der in diesem Fall das Push auslöst:
{{{
<e:push id="push-user-list" direct="true">
<h:form id="user-list-form">
<e:render event="intersult.test.User"/>
<p:dataTable id="user-table" value="#{userList.users}" var="user">
<p:column headerText="Id">
<h:outputText value="#{user.id}"/>
</p:column>
<p:column headerText="Name">
<h:outputText value="#{user.name}"/>
</p:column>
</p:dataTable>
</h:form>
</e:push>
}}}
__Erklärung:__ Dadurch dass sich der Tag <e:render> innerhalb des Tag <e:push> befindet, löst dieser den Push-Event bei allen verbundenen Client aus. Die enthaltene User-Liste <p:dataTable> wird bei allen verbundenen Clients (also Browsern) synchronisiert angezeigt. Sobald der Event "intersult.test.User" ausgelöst wird - egal ob von einem Client oder vom Server - wird die Tabelle neu gerendert.
__Hinweis:__ für die praktische Anwendung könnte man den Zeilen der Tabelle eine Id in Abhängigkeit der User-Id geben und die entsprechende Zelle neu rendern, hinzufügen oder löschen. [JSF Ext] unterstützt auch das Hinzufügen und Löschen von Components durch AJAX.
Das Ganze kann dann so aussehen:
[{Image src='JSF Ext Push/push-user-list.PNG'}]
At line 111 changed 2 lines
!!!Resource-Tag
JSF-Resources können mit <h:outputStylesheet> und <h:outputScript> ausgegeben werden, mit <h:graphicImage> als Image angezeigt. Einige weitere Tags unterstützen die Attribute "name" und "library". Darüber hinaus gibt es die Möglichkeit, Resource-URLs mit
!!!Push Status
Der mitgelieferte Tag <ext:push-status> kann den Verbindungsstatus einer Push-Connection sichtbar machen:
At line 115 changed one line
#{resource['<library>:<name>']}
<ext:push-status channel="/push-user-list"/>
At line 118 changed 16 lines
zu erzeugen oder ganz zu Fuß mit
{{{
#{request.contextPath}/faces/javax.faces.resource/<name>?ln=<library>
}}}
Möchte man einen Link erzeugen vom Schema <a href="...">, bietet [JSF Ext] eine schönere Lösung:
{{{
<e:resourceLink name="<name>" library="<library">
<h:outputText value="Some link"/>
</e:resourceLink>
}}}
__Hinweis:__ Wie der normale <h:outputLink> unterstützt <h:resourceLink> ebenfalls Parameter vom Typ <f:param> (und abgeleitete Parameter wie <f:method-param> und <f:new>).
Der Status wird dann als rot/grüne "LED" angezeigt.