grails无法从插件中找到视图

Posted

技术标签:

【中文标题】grails无法从插件中找到视图【英文标题】:grails can't find view from plugin 【发布时间】:2021-06-11 23:42:27 【问题描述】:

我正在尝试编写一个可以查看文件的 grails 插件。实际上,我只是想在这里升级这个...https://github.com/intelligrape/File-Viewer-Grails-Plugin 到 grails4,并让它在我的应用程序中运行。

无论如何,在我让它在应用程序中运行后,我访问 http://localhost:8080/file/index 并收到此错误:

URI
/file/index
Class
javax.servlet.ServletException
Message
Could not resolve view with name '/plugins/file-explorer-0.1/file/fileList' in servlet with name 'grailsDispatcherServlet'

当控制器执行此操作时会发生这种情况...

def index(String filePath) 
    Map model = [locations: fileLocations.locations]
    // blah blah
    render(view: "/file/fileList", model: model, plugin: 'fileExplorer')

调用了 render() 方法(我在调试器中检查了)。我也尝试删除 plugin: 参数,但没有任何区别。

现在,如果我将插件作为独立应用程序运行(通过转到该文件夹​​并运行“grails run-app”,那么它会按预期工作,并且 http://localhost:8080/file/index 会呈现视图正如人们所期望的那样。

这一切让我相信插件基本上可以工作并安装到我的应用程序中,除了视图组件,无论出于何种原因,它都无法从插件中找到视图。

如果您想知道源代码是什么样的,基本上就是您在此处看到的内容:.. https://github.com/intelligrape/File-Viewer-Grails-Plugin 除了我已将其从 FileViewer 重命名为 FileExplorer。

我用的是grails 4.1.0.M5 不知道是不是这个版本的bug还是什么。

【问题讨论】:

【参考方案1】:

看来我应该有

plugin: 'filexplorer'

而不是

plugin: 'fileExplorer'

我可以发誓我已经尝试过了。我想问题是它可能会混淆在插件中使用哪个名称,如 build.gradle 名称、*Plugin.groovy 中的名称、settings.gradle 中的名称、包名称等。无论如何,不知怎的,我搞砸了。

【讨论】:

以上是关于grails无法从插件中找到视图的主要内容,如果未能解决你的问题,请参考以下文章

Grails 2.2.1 无法识别从 BuildConfig.groovy 安装的“发布”插件

从 Grails 中的控制器渲染 json 视图

Grails - 控制器和视图之间的通信

Grails 资源标签生成错误链接

Grails项目BuildConfig.groovy Tomcat插件版本?

在哪里放置,以及如何访问 Grails 应用程序中的 jQuery 插件?