gpt4 book ai didi

grails - Flash 对象映射如何在 Grails 框架内工作

转载 作者:行者123 更新时间:2023-12-02 06:29:42 24 4
gpt4 key购买 nike

Flash,它是一个请求的临时存储映射。

我想知道这是如何在 grails 上实现的 core framework

我特别对负责将闪存映射放入请求中,然后在请求经过精心处理后将其取出的类感兴趣。

最佳答案

Flash实际上是一个临时存储映射,仅用于当前请求和下一个请求。它不会在下一个请求后保留条目,除非在下一个请求中重新填充条目(这将是 future 的当前请求)。以下是它在 Grails 中的工作原理:

  • FlashScope扩展Map本身的接口(interface)有两个方法next()getNow()GrailsFlashScope实现。所有这些都可以在 grails-web-mvc 中找到。

  • GrailsFlasScope主要维护两个并发的HasMap(一个用于当前请求,第二个用于下一个请求)来保存条目。它实现了next()FlashScope 进行清理和“仅限制到下一个请求”部分:

    a.清空电流
    b.将下一个设置为当前
    C。清除下一个

  • 接下来要关注的是 GrailsWebRequestFilter (实现 OncePerRequestFilter),确保每次调度始终执行一次请求。

  • 所有 http servlet 请求均按 GrailsWebRequestFilter 过滤。此过滤器将 Flash 范围设置为next,以便每次检索最新且有效的信息。

  • 现在的问题是 FlashScope 如何协调当前和下一张 map ?嗯,这就是为什么 FlashScope 是从 Map 扩展而来的。 FlashScope 覆盖 get(key)通过确保从下一个 map 检索值来协调两个 map ,否则切换到当前 map 。

  • 默认情况下, Controller 如何使用flash?所有 Controller 都继承ControllersApi,它继承CommonWebApi .

I hope you get what you were looking for. .

关于grails - Flash 对象映射如何在 Grails 框架内工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22649556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com