cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Krause" <th.kra...@web.de>
Subject Rekursion, Recursion
Date Fri, 14 May 2004 15:07:52 GMT
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

Mime
View raw message