Ant*_*ony 4 grails grails-controller
Flash,它是一个请求的临时存储映射.
我想知道如何在grails 核心框架上实现它
特别是我对负责将flash地图放入请求中的类感兴趣,然后在请求处理完成后将其取出.
dma*_*tro 10
Flash实际上是当前请求和下一个请求的临时存储映射.除非在下一个请求中重新填充条目(将来是最新的),否则它将不会在下一个请求之后保留条目.以下是它在Grails中的工作原理:
FlashScope它扩展地图本身接口有两个方法next(),并getNow()通过实施GrailsFlashScope.所有这些都可以在grails-web-mvc.
GrailsFlasScope主要维护两个并发的HasMap(一个用于当前请求,另一个用于下一个请求)来保存条目.它实现了next()从FlashScope清洁和"限制到下一个请求"的部分:
一个.清除电流
b.将下一个作为当前
c.明确接下来
接下来要关注的是GrailsWebRequestFilter(implements OncePerRequestFilter),它确保每次调度始终只有一次请求执行.
所有http servlet请求都经过筛选GrailsWebRequestFilter.此过滤器将闪存范围设置为next每次检索到最新有效信息时.
现在问题是如何FlashScope协调当前和下一个地图?嗯,这就是为什么FlashScope从延伸Map.FlashScope get(key)从地图覆盖以通过确保从next地图检索值来协调两个地图,否则切换到当前地图.
默认情况下如何flash使用controllers?所有控制器继承ControllersApi继承CommonWebApi.
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |