使用上次访问的页面恢复会话

时间:2011-12-20 15:44:11

标签: grails groovy

我想让用户在点击恢复按钮后被带到最后访问过的页面。我将id传递给控制器​​。

<input type="button" value="Resume" onclick="window.location.href='/wizard/submission/resume/${submission.id}'" />

控制器逻辑如下

def resume = {
        def id = params.id

        def test = (getDomainObjectType() as Class).get(id)

        session[getSessionObjectName()] = test;

        LOG.debug("resuming ${test}")
        redirect(action: "wizard");
    }

,向导逻辑如下:(它的时间很长)

nextView = (int) postProcessedValues.next;
 if (nextView == null) {
                redirect(action: "index");
                //nextView = 0; //question is what to do here. Maybe redirect back to the index page instead...
            }

帮助我在这里实现逻辑。

2 个答案:

答案 0 :(得分:0)

听起来像您可能想要使用Grails Web Flow支持进行调查 - &gt; http://grails.org/doc/latest/ref/Plug-ins/web%20flow.html

这允许延续和更简单的方式来了解&#39;用户处于复杂的向导或“有状态”状态。网络应用程序(例如购物车),以便您可以恢复&#39;他们可能已远离它的操作。这也允许您的应用向儿童向导&#39;可以这么说或者在Web Flow术语中使用子流程&#39;。如果您希望用户使用不会影响主向导状态的状态执行某些扩展操作(如果他们选择取消),这些操作非常有用。

是否会将更多状态推送到用户会话,并且您必须确保给予最小范围,以便它们尽快消失。但是,如果您的用户交互很复杂并且依赖于他们在扩展操作中的位置,这是非常宝贵的。

答案 1 :(得分:0)

我已经使用int类型的pagetracker实现了解决方案,并在数据库中保留了它的值,并在单击resume按钮时显示关联的页面。

相关问题