Hello Cocoon PMC, I think some of your members are familiar with the german language!
Hallo Cocoon PMC,
ich hatte eine Aufgabe zu l�sen, die Rekursion innerhalb einer XSP
voraussetzt. Es sollte eine hierachische Struktur analysiert und als HTML
wiedergegeben werden. Innerhalb der XSPs ist die Definition, Implementierung
und der Aufruf eigener Methoden m�glich. Um in einer eigenen Methode
XML-Tags zu verwenden ist das Objekt org.xml.sax.helpers.AttributesImpl
xspAttr notwendig. Allerdings wird dies durch den XSP-Java-Transformator als
lokales Objekt innerhalb der Methode generate() erzeugt.
Mein Aufruf f�r die Rekursion mu�te daher so lauten:
<xsp:logic>
<!-- It's a little bit tricky, but the parameter "xspAttr" is
generated while the transformation from xsp to java -->
<!-- Please see the resulting java file to validate this -->
this.processGroupHierarchyNode( xspAttr, rootNode );
</xsp:logic>
Die aufgerufen Methode in der XSP:
<!-- go recursive thrue the hierarchy of groups -->
<!-- the param xspAttr is required for SAX -->
<!-- I think you can also use "AttributesImpl xspAttr = new
AttributesImpl();" to create a new xspAttr -->
<xsp:logic>
private void processGroupHierarchyNode(
org.xml.sax.helpers.AttributesImpl xspAttr, GroupHierarchyNode node) throws
Exception
...
Dabei ist es f�r andere Entwickler nicht ersichtlich, woher das Attribut
xspAttr kommt. Das erkennt man nur, wenn man sich die generierte XSP
ansieht. Au�erdem ist diese L�sung nicht stabil gegen�ber �nderungen am
XSP-Java-Transformator.
Daher mein Vorschlag:
Bei der XSP-Java-Transformation das Objekt AttributesImpl xspAttr auf
Klassenebene definieren.
Gru�
Thomas
groups-hierarchy.xsp
Description: Binary data
