我是一个初学者,尝试学习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>
开始时,索引页面显示没有 Controller 。然后,我创建另一个 Controller ,例如 TodosController 。因为此 Controller 名称在某种程度上不太好,所以我想将其重命名(当然,使用Intellij IDEA中的重构功能)到 TodoListController 。不幸的是,该代码仍然保留了两个 Controller ,并在索引页面中显示了它们。当我单击 TodosController 的链接时,出现错误:
Could not resolve view with name '/todos/index' in servlet with name 'grailsDispatcherServlet'
错误的快照如下。
我花了很多时间找出它在哪里,但我没有发生任何不可思议的事情。
有人遇到这种情况吗?
最佳答案
听起来您对Grails有点困惑。在这种情况下,最好的方法是停止应用程序并运行clean
命令,然后重试。原因是,Grails将您的初始Controller编译到build
目录中,该目录中.class
文件仍然保留(即使.groovy
文件消失了)。组件扫描仍然从类路径中选择类,最后得到两个 Controller 。
关于grails - 耐火 Material 处理不当,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36338222/