| 

.NET C# Java Javascript Exception

Baumstrukturen

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Baumstrukturen

TBird - 14.12.2007 11:59
Hallo,

hat jemand eine gute Idee, wie man mit Grails Baumstrukturen verarbeiten kann?

Erstens bräuchte man eine entsprechende Datenstruktur, die man bequem füllen und auch wieder auslesen kann. Wichtig dabei sind die richtige Reihenfolge und die jeweilige Ebene für die Darstellung.

Wünschenswert ist auch ein entsprechender Tag, um die Datenstruktur in der gsp verarbeiten zu können.

Gruß TBird


Re: Baumstrukturen

marz - 14.12.2007 17:44
Ich habe mal etwas experimentiert, aber weit bin ich nicht gekommen. Vielleicht können wir uns ja hier zu einer Lösung vortasten.

Es gibt eine Klasse Nachricht,
class Nachricht { 
	String betreff
	String inhalt
	static hasMany = [antworten: Nachricht]
}
die die Antworten auf sich in einem Set antworten speichert.

In der zugehörigen View habe ich ein Feld antwortAuf definiert, wo man einfach bei Folgenachrichten die ID der Nachricht einträgt, auf die man antwortet (ist ja nur ein Test).
<input type="text" id='inhalt' name='antwortAuf' value=""/>

Die zugehörige Action im NachrichtController sieht so aus:
def save = {
	def nachricht = new Nachricht(params)
	if(!nachricht.hasErrors() && nachricht.save()) {
		def mutter = null
		if(params.antwortAuf)
			mutter = Nachricht.get(params.antwortAuf)
		if(mutter){
			mutter.addToAntworten(nachricht)
			mutter.save()
		}
		flash.message = "Nachricht ${nachricht.id} created"
		redirect(action:show,id:nachricht.id)
	}
	else {
		render(view:'create',model:[nachricht:nachricht])
	}
}

Es wird ein Mutter-Objekt erzeugt, auf das geantwortet wird und diesem die aktuelle Nachricht als Antwort hinzugefügt. Soweit die Theorie...

Versuche ich dann auf der Seite views/nachricht/show.gsp die Antworten mit
<g:each in="${nachricht.antworten}" var="antwort">
<p>${antwort.betreff}</p>
</g:each>
auszugeben, erhalte ich an dieser Stelle keine Ausgabe.

mfg
marz


Re: Baumstrukturen

christian - 19.12.2007 12:01
Hallo TBird,

sehr schön aufbereitet das Beispiel!
> class Nachricht {
> 	
> ...
> 	/* um den vollständigen Baum anzuzeigen, unabhängig von der Wahl des 	 
>       Knotens, ohne den Baum rückwärts durchsuchen zu müssen */
> 	int wurzel
> ...
> }

Müsste wurzel nicht vom Typ Nachricht sein? Wo greifst du auf diese Variable zu? Das kommt in deinem Beispiel nicht vor.

Gruß
Christian


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Baumstrukturen" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.