我有一个grails应用程序,我正在构建一个全局配置页面(应用程序名称,图像等)
如果布尔值为false,我想将任何url请求重定向到它。我会看到这样的事情:
AppConfiguration config = AppConfiguration.findAll().get(0);
if(config == null || !config.hasBeenConfigured)
{
redirect([controller :"AppConfiguration", action:"index"])
}
关于如何在不拖曳100多个控制器的情况下执行此操作的任何想法,以添加此内容。
Grails版本3.0.8
谢谢
答案 0 :(得分:0)
好的,我找到了解决方案。
每个控制器都通过以下方式为资源等实现了主要布局:
<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;
}
}