[Groovy] Grails 1.0.5 <g:include simulieren

Status
Nicht offen für weitere Antworten.

newcron

Aktives Mitglied
Hallo allerseits,
schön dass es jetzt ein forum gibt, wo ich meine frage loswerden kann. Ich habe folgendes Problem: Ich arbeite an einer älteren (und umfangreicheren) grails 1.0.5 app, die mehr oder minder gewuchert ist. Ein Upgrad auf ein neueres Grails ist dadurch ausgeschlossen, als dass die alten (und stark modifizierten) plugins aus dieser app sich standhaft dagegen weigern.

Nun muss ich diese Anwendung stark erweitern und will mich möglichst von dem vorhandenen spaghetti-code abseilen. Meine lösung hierzu lautet <g:include (damit ich meinen eigenen controller und meine eigenen views in den code hineinpacken kann). Leider kann Grails 1.0.5 <g:include noch nicht und <g:render löst mein problem nicht (weil ich damit keinen controller aufrufen kann). Ich habe zwar das Grails-Include plugin gefunden http://www.grails.org/Include+Plugin dieses scheint jedoch mehr oder minder kaputt zu sein.

Wenn ich nämlich in meiner gsp einen solchen code habe:
/detailsPage/index.gsp
Java:
<inc:include controller="detailsPageStatistics" />
...
<g:render template="subtemplate" />
sucht die render-taglib nicht im Ordner detailsPage/ nach _subtemplate.gsp sondern im Ordner detailsPageStatistics/.

Hat jemand hierfür eine Lösung?
 
B

bygones

Gast
hab noch nicht mit Grails gearbeitet, aber versteh auch so deine Frage nicht ganz

wenn du detailsPageStatistics includierst findet er natuerlich nicht in detailsPage...
also warum nicht [c]<inc:include controller="detailsPage" />[/c]

?
 

newcron

Aktives Mitglied
hm, vielleicht habe ich das problem etwas dumm formuliert, also hier nochmal strukturierter ;)

ich habe einen DetailsPageController, der wird ausgeführt und rendert dann die gsp detailsPage/index.gsp (standardverhalten von Grails). In dieser index.gsp will ich die ausgabe eines anderen Controllers (DetailsPageStatistics), der ebenfalls eine gsp (nämlich detailsPageStatistics/index.gsp) zur Darstellung verwendet.

Das funktioniert mit diesem Plugin per <inc:include controller="detailsPageStatistics" />. Bis zu diesem Punkt funktioniert das auch, aber danach nicht mehr. Dann denkt nämlich Grails, dass der ursprüngliche Aufruf an den DetailsPageStatistics-Controller ging und sucht nun alle folgenden Daten in dem ordner detailsPageStatistics (anstelle von detailsPage, wie es eigentlich sein müsste).

Wenn du so willst, verschiebt das <inc:include also das aktuelle Arbeitsverzeichnis... Wie gesagt, der code ist groß und gewuchert, daher ruft das viele probleme auf.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben