【问题标题】:resuming the session with last visited page使用上次访问的页面恢复会话
【发布时间】:2011-12-20 15:44:11
【问题描述】:

我希望用户在单击恢复按钮后被带到上次访问的页面。我正在将 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...
            }

帮我实现这里的逻辑。

【问题讨论】:

  • 如果您需要我的其他代码,请告诉我...

标签: grails groovy


【解决方案1】:

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

这允许在复杂的向导或“有状态的”网络应用程序(例如购物车)中了解用户的“位置”和更简单的方法,以便您可以“恢复”他们可能已经离开它的操作。这也允许您的应用程序可以说是“子向导”或 Web Flow 术语中的“子流”。如果您希望您的用户使用不会影响主向导状态(如果他们选择取消)来执行一些扩展操作,这些功能很有用。

确实会向用户会话推送更多状态,您必须确保给事物最小范围,以便它们尽快消失。但是,如果您的用户交互很复杂并且取决于他们在扩展操作中所处的位置,那么这将是非常宝贵的。

【讨论】:

  • 嗨,托德,感谢您的回复...我以不同的方式实现了这一点...使用与每个页面关联的页面跟踪器并单击恢复时通过识别页面跟踪器将我带到该页面.再次感谢您的回答
【解决方案2】:

我已经通过使用 int 类型的 pagetracker 并将其值保存在数据库中并在单击恢复按钮时显示相关页面来实现该解决方案。

【讨论】:

    猜你喜欢
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多