从 Grails 插件覆盖控制器

Posted

技术标签:

【中文标题】从 Grails 插件覆盖控制器【英文标题】:Override controller from Grails Plugin 【发布时间】:2014-09-07 10:55:49 【问题描述】:

我使用的是 Grails 2.0.4,我正在使用的插件项目中有一个 LoginController,而不是 SpringSecurity 的 Login Controller。

现在我正在迁移到 Grails 2.4.2,但它不再工作了。

当我将控制器放入项目中时它起作用了,但我想将它放回插件项目中。

关于如何强制它的任何想法?

【问题讨论】:

【参考方案1】:

在您的 URL 映射中,您可以明确说明您要映射到哪个登录控制器:

// grails-app/conf/UrlMappings.groovy
class UrlMappings 
    static mappings = 
        '/alphaLogin' 
            controller = 'login'
            plugin = 'alpha'
        

        '/betaLogin' 
            controller = 'login'
            plugin = 'beta'
        
    
  

当然,您不必同时提供两者的映射。你可以只映射到你想要的,而不提供到另一个的路线。

【讨论】:

成功了! :) 谢谢。我只有两个问题:一个关于插件名称。我的插件定义为“myplugin”,但我不得不在 URLMappings 中把它写成“myPlugin”。第二个是我还必须在应用程序内从默认包移动到另一个包。

以上是关于从 Grails 插件覆盖控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何扩展/覆盖插件的控制器操作?

Grails 3 Spring Security 覆盖登录表单

从 Grails Twitter-Bootstrap 插件覆盖 CSS

在 Grails 2.2 中覆盖插件视图

Grails 资源标签生成错误链接

Grails spring-security-core 插件教程