0

Ich bin ein Anfänger, der versucht, Grails 3.1 zu lernen.Refactory könnte unpassend gemacht werden

<ul> 
    <g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }"> 
     <li class="controller"> 
         <g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link> 
     </li> 
    </g:each> 
</ul> 

Zu Beginn der Index-Seite zeigt keine Controller: auf den Standard Bezüglich ich folgende Kratzer auf der Indexseite hinzufügen. Dann erstelle ich einen anderen Controller, TodosController zum Beispiel. Da dieser Controller-Name irgendwie nicht nett ist, möchte ich ihn (natürlich unter Verwendung der Refactor-Funktion in Intellij IDEA) in TodoListController umbenennen. Leider bleibt der Code weiterhin zwei Controller und zeigt sie auf der Indexseite an. Wenn ich auf den Link von TodosController klicken, erhalte ich die Fehlermeldung:

Could not resolve view with name '/todos/index' in servlet with name 'grailsDispatcherServlet' 

Snapshot des Fehlers ist unten. Could not resolve view Ich verbringe viele Male um herauszufinden, wo es ist, aber keine magische Sache passiert mir. Hat jemand eine solche Situation?

+0

Stoppen Sie Ihre Anwendung und führen Sie den Befehl "clean" für Grails aus. Sehen Sie, ob das das Problem behebt. –

+0

@JoshuaMoore: Reinigung behebt mein Problem. Vielen Dank! – Tung

+0

Kein Problem, fügte es als Antwort hinzu, da es Ihr Problem gelöst hat. –

Antwort

3

Klingt, als hättest du die Grails etwas verwirrt. In diesem Fall sollten Sie die Anwendung stoppen und den Befehl clean ausführen und es erneut versuchen. Der Grund dafür ist, dass Grails Ihren ursprünglichen Controller in das Verzeichnis build kompiliert hat, in dem die Datei .class immer noch vorhanden ist (selbst wenn die Datei .groovy nicht mehr vorhanden ist). Der Komponentenscan wählt die Klasse weiterhin aus dem Klassenpfad aus, und Sie erhalten die beiden Controller.

Verwandte Themen