This page (revision-63) was last changed on 26-Mar-2013 12:05 by Dieter Käppel

This page was created on 07-Jun-2009 20:54 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
63 26-Mar-2013 12:05 26 KB Dieter Käppel to previous
62 26-Mar-2013 12:05 26 KB Dieter Käppel to previous | to last
61 24-Nov-2012 12:00 26 KB Dieter Käppel to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 12 changed 4 lines
** __id__ Innerhalb des meta-Tags kann hier eine Id abgerufen werden und als Zuweisung für eine andere Komponente verwendet werden. Diese Id darf natürlich nur einmal verwendet werden, da die im Component-Tree von JSF eindeutig sein muss. Werden mehrere Ids gebraucht, können diese mit #{comp.id}-suffix erzeugt werden.
** __clientId__ Innerhalb des meta-Tags kann hier die clientId, als die im HTML-Code tatsächlich heraus generierte Id abgefragt werden. Dies wird vom JavaScript-Code gebraucht.
** __parentId__ Die JSF-Id des übergeordneten Tags.
** __parentClientId__ Die ClientId des übergeordneten Tags. Damit ist es möglich, z.B. Javascript-Tags zu bauen, die Aktionen für einen Event durchführen.
** __id:__ Innerhalb des meta-Tags kann hier eine Id abgerufen werden und als Zuweisung für eine andere Komponente verwendet werden. Diese Id darf natürlich nur einmal verwendet werden, da die im Component-Tree von JSF eindeutig sein muss. Werden mehrere Ids gebraucht, können diese mit #{comp.id}-suffix erzeugt werden.
** __clientId:__ Innerhalb des meta-Tags kann hier die clientId, als die im HTML-Code tatsächlich heraus generierte Id abgefragt werden. Dies wird vom JavaScript-Code gebraucht.
** __parentId:__ Die JSF-Id des übergeordneten Tags.
** __parentClientId:__ Die ClientId des übergeordneten Tags. Damit ist es möglich, z.B. Javascript-Tags zu bauen, die Aktionen für einen Event durchführen.
** __javascriptId:__ Eine aus der ClientId abgeleitete Id, die für Javascript Variablen und Funktionen benutzt werden kann. Die ClientId kann nicht verwendet werden, da diese Id das Trennzeichen ':' enthält.
At line 28 added one line
* __event:__ Damit kann ein Event der Parent Component festgelegt werden, dem ein Event hinzugefügt wird. Genau genommen wird dem hier benannten Attribut ein Javascript-Aufruf hinzugefügt. Der so erzeugte Tag muss nach A4J- oder Richfaces-Handler gestellt werden, da diese den Handler einfach überschreiben würden. Der meta-Tag hingegen konkateniert die Handler, sodass beide ausgeführt werden.
At line 176 changed one line
Es soll ein Tag gebaut werden, der an einen Event-Handler in Javascript hinzugefügt werden kann. Der ausgeführte Javascript-Code soll den Value eines HTML-Input-Elements verändert und anschließend die onchange-Methode des HTML-Input-Elements aufrufen, falls vorhanden.
Es soll ein Tag gebaut werden, der an einen Event-Handler in Javascript hinzugefügt werden kann.
At line 178 removed 2 lines
Zunächst bauen wir die Methode für das Hinzufügen eines Event-Handlers:
At line 181 changed 23 lines
function(obj, handler, fn) {
var oldFn = obj[handler];
obj[handler] = function(event) {
fn();
if (this[handler].oldFn != null)
this[handler].oldFn(event);
}
obj[handler].oldFn = oldFn;
}
}}}
Diese Funktion ist bereits durch die intersult.js im Intersult-Namespace der verfügbar, daher wird diese per javascript-Referenz im meta-Tag hinzugefügt. Der gesamte Tag sieht dann wie folgt aus:
{{{
<i:meta var="comp" useId="#{id}" javascript="#{intersultResource.get('/intersult.js')}"
rendered="#{empty rendered or rendered}">
<script type="text/javascript">
Intersult.addHandler($("#{comp.parentClientId}"), "#{event}", function(event) {
$('#{clientId}').value = '#{value}';
if ($('#{clientId}').onchange != null)
$('#{clientId}').onchange();
});
</script>
<i:meta var="comp" useId="#{id}" rendered="#{empty rendered or rendered}" event="#{event}">
<script type="text/javascript">
function #{comp.javascriptId}() {
<ui:insert/>
}
</script>