以下是挑战:根据传入的网址,我希望显示特定的目标网页,并在登录时根据用户的身份显示特定的用户体验。
例如,www.abc.com和www.xyz.com都指向一个提供常见门户体验的Grails实例。如果用户通过www.abc.com到达,我想显示带有登录表单的ABC启动页面。如果用户通过www.xyz.com到达,我想用登录表单显示XYZ启动页面。
一旦用户登录,我将需要保留由传入URL确定的原始“品牌”上下文。例如,即使所有GSP,控制器等都由所有用户共享,ABC用户也会选择自己的CSS,资源包(或条目)等,用户将拥有与XYZ用户截然不同的视觉体验。
这可能吗?或者我是否需要分支应用程序代码库并托管多个独立的门户网站实例?
答案 0 :(得分: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"
}
}
}
}
}