【问题标题】:Grails global Variable based redirectGrails 基于全局变量的重定向
【发布时间】:2017-06-02 05:34:09
【问题描述】:

我有一个 grails 应用程序,我正在为它构建一个全局配置页面(应用程序名称、图像等)

如果布尔值为 false,我想将任何 url 请求重定向到它。我会看到这类似于:

AppConfiguration config = AppConfiguration.findAll().get(0);
if(config == null || !config.hasBeenConfigured)
{
    redirect([controller :"AppConfiguration", action:"index"])
}

关于如何做到这一点的任何想法,而无需通过 100 多个控制器来添加它。

Grails 3.0.8 版

谢谢

【问题讨论】:

  • 什么版本的 Grails?
  • @JoshuaMoore 对不起! 3.0.8版,我现在也更新问题。

标签: grails url-redirection


【解决方案1】:

好的,我找到了解决方案。

每个控制器通过以下方式实现资源等的主要布局:

<meta name="layout" content="main"/>

所以在这个 main.gsp 中我添加了以下代码:

<g:set var="config" bean="configurationService"/>
<script>
    var shouldRedirect = ${!config.hasBeenConfigured()};

    if(shouldRedirect && window.location.href.indexOf("AppConfiguration") == -1)
    {
        window.location.href = window.location.origin + "/AppConfiguration/index";
    }
</script>

并像这样创建了一个名为 ConfigurationService 的 grails 服务:

class ConfigurationService {

    def hasBeenConfigured()
    {
        return AppConfiguration.instance.hasBeenConfigured;

    }

    def getApplicationName()
    {
        return AppConfiguration.instance.applicationName;
    }
}

【讨论】:

    猜你喜欢
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2020-04-04
    相关资源
    最近更新 更多