Grails从过滤器重定向

问题描述 投票:0回答:1

我想做的是在grails过滤器中显示在数据库中创建用户时正在加载的微调器图形。 需要一段时间才能检索用户凭据,我想显示一个加载微调器。 然后,当用户在数据库中创建时,我想显示原始请求的页面。

这是我的问题:我有一个名为accessFilter.groovy的grails过滤器。 在之前的部分中,我检查用户是否在数据库中。 如果没有,我这样做:

    if(!user){
        render(view:'/loadingCredentials')
        return true
    }

然后在loadingCredentails.gsp中,我调用create用户控制器。

    <body onload="callCreateUser()">
        <g:javascript>
            function callCreateUser(){
                window.location = "admin/createuser"
            }
        </g:javascript>
        <div>
            <img alt="Loading..." src="images/puff.svg"></img>
        </div>
    </body>

控制器关闭并创建用户,然后重定向回主控制器(或用户最初导航到的任何页面)。 它可以正确显示微调框,但可以代替它或创建用户并呈现请求的页面,而只是一次又一次地创建用户。

所以我的问题是...有没有办法让它起作用,还是应该改变我试图完全做到这一点的方式?

grails
1个回答
1
投票

我不会为此使用过滤器。 如果您要处理特定的操作,则过滤器可能会过大。

您的JS代码应发出AJAX请求,并开始显示微调框,控制器动作将接受请求并创建用户(可能使用事务服务),并在完成后返回“ OK” JSON。

最后, onSuccess JS回调将隐藏微调框,并可能执行其他操作。

所有这些步骤都有大量信息,从基于jQuery的简单解决方案到具有完善的JS MVC框架的REST驱动的单页应用程序,不一而足

© www.soinside.com 2019 - 2024. All rights reserved.