0

当用户第一次访问该网站时,必须向用户显示弹出窗口,建议注册时事通讯等等……我想这是通过 cookie 检测完成的。用 Grails 做这件事的正确方法是什么?我们使用 Spring Security Core 插件,但没有找到它对我们有什么帮助。

4

1 回答 1

0

使用过滤器可能很有意义:http: //grails.org/doc/latest/guide/theWebLayer.html#filters

如果您需要向所有用户(不仅仅是注册会员)显示弹出窗口,那么 cookie/会话可能是您唯一的解决方案。如果弹出窗口仅显示给已登录的成员,您可以使用类似于以下内容的过滤器:

showPopupOnFirstLogin(controller:'*', action:'*') {
        before = {
            try{
                User user = springSecurityService.currentUser
                if (user?.mustGetNotification && !request.xhr){
                    //we ignore ajax requests
                    redirect(controller:"home", action:"showPopup")
                    return false
                }

            }catch (Exception e){
                log.error "Failed to redirect", e
            }
        }

}

于 2013-10-08T14:54:17.903 回答