zoukankan      html  css  js  c++  java
  • Go Revel

    ##Session / Flash 作用域 revel提供了两种cookies存储机制: // 一个加密签过的cookie (限制为4kb). // 限制: Key 中不能有冒号 type Session map[string]string // Flash代表只作用于每个请求的cookie,属于瞬时消息 // 它允许存储只跨越一个页面的数据,是临时性的 // 通常被用于存储并显示 执行成功 或 错误消息 // e.g. the Post/Redirect/Get pattern: http://en.wikipedia.org/wiki/Post/Redirect/Get type Flash struct { Data, Out map[string]string } ##Session Revel的会话是指一个字符串map,被存储为加密签名的cookies。 有几点需要注意: 1、4kb限制 2、所有数据被序列化为字符串 3、所有数据可以被用户看到(未加密),并可以被安全的修改 ##Flash `Flash`提供一次性字符串存储。 它可以在`Post/Redirect/Get`请求的页面上一次性的显示“操作成功!”或“操作失败!”消息。 示例: // Show the Settings form func (c App) ShowSettings() revel.Result { return c.Render() } // Process a post func (c App) SaveSettings(setting string) revel.Result { c.Validation.Required(setting) if c.Validation.HasErrors() { // 在flash中存储错误提示信息 c.Flash.Error("Settings invalid!") c.Validation.Keep() c.FlashParams() return c.Redirect(App.ShowSettings) } saveSetting(setting) // 在flash中存储成功提示信息 c.Flash.Success("Settings saved!") return c.Redirect(App.ShowSettings) } 上面示例的过程: 1、用户获取setting页面 2、用户向setting页面POST数据 3、程序处理用户提交的数据,并且保存错误/成功提示信息到`flash`,然后使用`REDIRECT`重转向至其他页面。 这里用到了两个便利的方法: 1、`Flash.Success(message string)` 是 `Flash.Out["success"] = message`的简化版 2、`Flash.Error(message string)` 是 `Flash.Out["error"] = message`的简化版 flash信息可以在模板中使用key来访问。例如,在模板中使用以下方式来获取成功/错误信息: {{.flash.success}} {{.flash.error}}
  • 相关阅读:
    线性DP
    2020年第十一届蓝桥杯第二场C/C++ B组省赛题解
    筛质数 + 质因子分解
    快速幂
    DP 背包问题
    CF510B Fox And Two Dots
    怎样看人生的价值和意义!--找回迷失的自己
    Ionic+AngularJS 开发的页面在微信公众号下显示不出来原因查究
    AngularJS directive 指令相关记录
    AngularJS的一点学习笔记
  • 原文地址:https://www.cnblogs.com/hangxin1940/p/3268967.html
Copyright © 2011-2022 走看看