耐火材料可能做得不当
refactory might be done unproperly
我是一名尝试学习 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。因为这个controller名字不太好听,所以想把它重命名为TodoListController(当然是利用了Intellij IDEA中的refactory特性)。不幸的是,该代码仍然保留两个控制器并在索引页中显示它们。当我点击 TodosController 的 link 时,出现错误:
Could not resolve view with name '/todos/index' in servlet with name 'grailsDispatcherServlet'
错误的快照如下。
我花了很多时间找出它在哪里,但我没有发生任何神奇的事情。
有人遇到过这种情况吗?
听起来您有点混淆了 Grails。在这种情况下,最好的办法是停止您的应用程序和 运行 clean
命令,然后重试。原因是,Grails 将您的初始控制器编译到 build
目录中,其中 .class
文件仍然存在(即使 .groovy
文件消失了)。组件扫描仍然从 class 路径向上选择 class,最终得到两个控制器。
我是一名尝试学习 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。因为这个controller名字不太好听,所以想把它重命名为TodoListController(当然是利用了Intellij IDEA中的refactory特性)。不幸的是,该代码仍然保留两个控制器并在索引页中显示它们。当我点击 TodosController 的 link 时,出现错误:
Could not resolve view with name '/todos/index' in servlet with name 'grailsDispatcherServlet'
错误的快照如下。
听起来您有点混淆了 Grails。在这种情况下,最好的办法是停止您的应用程序和 运行 clean
命令,然后重试。原因是,Grails 将您的初始控制器编译到 build
目录中,其中 .class
文件仍然存在(即使 .groovy
文件消失了)。组件扫描仍然从 class 路径向上选择 class,最终得到两个控制器。