Grails-品牌应用程序

eco*_*dan 5 grails

以下是挑战:根据传入的URL,我希望显示特定的登录页面,并在登录时根据用户的身份显示特定的用户体验.

例如,www.abc.com和www.xyz.com都指向一个提供通用门户体验的Grails实例.如果用户通过www.abc.com到达,我想显示带有登录表单的ABC启动页面.如果用户通过www.xyz.com到达,我想用登录表单显示XYZ启动页面.

一旦用户登录,我将需要保留由传入URL确定的原始"品牌"上下文.例如,即使所有GSP,控制器等都由所有用户共享,ABC用户也会选择自己的CSS,资源包(或条目)等,用户将拥有与XYZ用户截然不同的视觉体验. .

这可能吗?或者我是否需要分支应用程序代码库并托管多个独立的门户网站实例?

Aar*_*ers 7

http://www.grails.org/Views+and+Layouts

看一看,我认为它可以解决90%的问题.为每个域都有一个特定的布局.为每个视图加载布局,可以帮助定义外观

您可以根据URL设置过滤器中的变量,然后可以在布局中阅读 http://www.grails.org/Filters

class MyFilters {
   def filters = {
        myFilter(controller:'*', action:'*') {
            after = {
              if (request.requestURI == "xyz") {
                session.layout = "layout1.gsp"
              } else {
                session.layout = "layout2.gsp"
              }
           } 
        }
   }
}
Run Code Online (Sandbox Code Playgroud)