首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >播放框架到闪存或不到闪存

播放框架到闪存或不到闪存
EN

Stack Overflow用户
提问于 2012-02-13 06:50:01
回答 1查看 2.5K关注 0票数 0

我对播放框架flash stuff....high级别的意义感到困惑,“把东西放在flash中的http POST上,以便在重定向后能够检索http GET”。我猜你“可以”把东西放在GET请求中,以便在下一个GET请求时被检索到,但这个请求非常非常糟糕,因为flash是在标签之间共享的;)。

我有以下内容,它需要params.flash和Validation.keep,否则我的页面将停止工作...(到目前为止还好)....

代码语言:javascript
复制
    if(Validation.hasErrors()) {
        params.flash(); // add http parameters to the flash scope
        Validation.keep(); // keep the errors for the next request(after redirect)
        registerCompanyPage();
    }

当然,稍后,我会在这种情况下将这个和那些添加到中断功能中。

代码语言:javascript
复制
    if(Validation.hasErrors() || !license) {
        Validation.keep(); //BREAKS functionality!!!! as errors NEVER go away now after getting them just once
        params.flash(); //BREAKS functionality as stuff NEVER goes away now
        log.info("errors="+Validation.errors());
        flash.error("Errors in form");

        log.info("company url="+company.getCompanyUrl());
        render("@registerStep2Page", user, company, license);
    }

那么registerCompanyPage是否在执行重定向,即使其中的代码调用了render?(我没有在这里发布代码),当我在我的第二个方法中将render更改为redirect()时,那么我就会得到控制器根本找不到,它完全停止工作。

我查看了playframework中示例中的所有验证,它们都在没有Validation.keep或params.flash的情况下执行渲染,那么这里发生了什么?有一次,我想我删除了Validation.keep和其他一些损坏,但现在似乎不能再现它。

有没有人完全明白这是怎么回事?

谢谢你,迪恩

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-13 07:06:23

任何对公共静态方法的调用都会调用重定向。(检查浏览器中的url以确认您是否喜欢...即它与您作为帖子的一部分调用的操作不同)。

因此,在您的第一个示例中,您需要使用flash,以便在重定向回原始页面后不会丢失错误。

你的第二个例子是直接在动作中渲染。所以,使用闪存,你正在为下一个请求存储东西,这显然是不好的,因为你可能没有任何错误。

你在网上看到的例子会有所不同,原因有几个。最初的视图是使用flash,并强制重定向回原始页面。这使得url和你所看到的当前页面保持同步。但是,由于闪存是cookie,因此在只能包含4Kb的介质中存储参数和错误消息是有限制的。因此,人们通常使用你的第二种方法。它不像RESTfully一样干净,但它确实防止了对cookies的需要,因为没有重定向。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9253454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档