| 

.NET C# Java Javascript Exception

Controller-Funktionen klassenübergreifend nutzen

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.


Controller-Funktionen klassenübergreifend nutzen

Schmettermann - 16.05.2010 15:05
Guten Morgen!

Ich knoble momentan an folgendem Problem und würde mich über Hilfe freuen!

Ich habe eine Aggregation zweier Domain-Klassen (Artwork <- Picture). Beim Erstellen einer neuen Artwork-Instanz soll automatisch ein Picture angelegt werden. Dazu muss die Bilddatei, die mit Hilfe eines Formulares hochgeladen wird im Dateisystem des Server abgelegt werden.

Diese Aufgabe (Speichern einer hochgeladenen Datei) habe ich im PictureController eine Funktion (keine Action!!!) "saveToDisk" definiert, die aus der normalen save-Action aufgerufen wird. Das funktioniert wunderbar, wenn ich ein Picture (nacktes Bild ohne weitere Attribute) hochlade.

Ein Artwork enthält neben der Pictue-Instanz noch einige Zusatzinfos zum Bild. Wenn ich nun ein neues Artwork hochlade, möchte ich, dass ich aus der ArtworkController.save - Action auf die PictureController.saveToDisk - Funktion zurückgreifen kann- Schließlich wäre es unsinn eine solche Funktion im ArtworkController erneut zu implementieren. Das wäre nicht besonders DRY.

Ich finde jedoch keinen Weg über Controller-Krenzen auf fremde Funktionen zuzugreifen. Weiß jemand ob dies möglich ist, oder ob in Grails andere Mechanismen zur Verfügung stehen, die mein Problem lösen?

Ein Kollege gab mir den Rat, die saveToDisk-Funktion in einen Service auszulagen. Dieser Ansazu scheint mir aber nicht besonders sauber. Schließlich wird saveToDisk ja einzig und allein für Picture-Instanzen aufgerufen und sollte nicht allegmein als Service zugänglich sein.

Zu Verbildlichung habe ich hier nochmal meine Domain-Klassen skizziert:

class Artwork {

String title
Artist Person
Picture picture

}

class Picture {

String fileName

}

Ich freue mich über jede Anregung!

LG
Schmettermann


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Controller-Funktionen klassenübergreifend nutzen" 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.