Столовая может быть сделана не по назначению

Я новичок, пытающийся изучать Grails 3.1. Что касается значения по умолчанию, я добавляю следующую заметку на страницу индекса:

<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>

Вначале на странице индекса нет контроллера. Затем я создаю еще один контроллер, например TodosController. Поскольку это имя контроллера как-то нехорошо, поэтому я хочу переименовать его (конечно, используя функцию рефакторинга в Intellij IDEA) в TodoListController. К сожалению, в коде по-прежнему остаются два контроллера и они отображаются на странице индекса. Когда я нажимаю на ссылку TodosController, я получаю сообщение об ошибке:

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

Снимок ошибки приведен ниже. Не удалось разрешить вид Я провожу много раз, чтобы выяснить, где это, но со мной не происходит ничего волшебного. Кто-нибудь получил такую ​​ситуацию?

1 ответ

Решение

Похоже, ты немного запутал Грааля. В этом случае лучше всего остановить приложение и запустить clean команду и попробуйте снова. Причина в том, что Grails скомпилировал ваш начальный контроллер в build каталог, где .class файл все еще остается (даже когда .groovy файл пропал). Сканирование компонента по-прежнему выбирает класс из пути к классу, и в итоге вы получаете два контроллера.

Другие вопросы по тегам