Session / Flash
编辑教程Session / Flash
Revel 支持两种 基于 cookie 存储机制
// 一个签名 cookie (不超过4kb).
// 限制: Keys may not have a colon in them.
type Session map[string]string
// 在每个请求中,Flash 获取并重写cookie。
// 它允许数据每次跨越存储到一个页面。它允许数据一次跨一页存储.
// 它通常用来实现成功或错误消息。
// 比如: Post/Redirect/Get : http://en.wikipedia.org/wiki/Post/Redirect/Get
type Flash struct {
Data, Out map[string]string
}
Session
Revel的 “session” 是一个加密签名存储的字符串 map。
影响如下:
- 大小不超过 4kb。
- 所有数据被保存为一个序列化的字符串。
- 用户可以查看、修改所有数据 (未加密)。
session cookie 的默认过期时间是浏览器关闭。 可以在app.config修改session.expires配置来指定一个有效期时间。格式是time.ParseDuration.
Flash
Flash 支持单独使用字符串存储。这对于实现 Post/Redirect/Get 模式是很有用的, 或临时显示 “操作成功!” 或 “操作失败!” 消息。
下面是一个例子:
// 一个设置页面
func (c App) ShowSettings() revel.Result {
return c.Render()
}
// 处理页面提交数据
func (c App) SaveSettings(setting string) revel.Result {
// 验证用户输入
c.Validation.Required(setting)
if c.Validation.HasErrors() {
// 设置被带回的flash cookie错误信息
c.Flash.Error("Settings invalid!")
// 在flash cookie中保存验证错误
c.Validation.Keep()
// 复制所有给定的参数(URL, Form, Multipart)到flash cookie
c.FlashParams()
return c.Redirect(App.ShowSettings)
}
saveSetting(setting)
// 设置flash cookie成功消息
c.Flash.Success("Settings saved!")
return c.Redirect(App.ShowSettings)
}
例子主要功能如下:
- 用户获取设置页面。
- 用户提交一个表单 (POST)。
- 应用程序处理用户请求,保存错误或成功的消息到flash中,然后重定向设置页面 (REDIRECT)。
- 用户获取设置页面, 显示flash中的消息。 (GET)
主要使用了两个函数:
Flash.Success(message string) 是 Flash.Out["success"] = message简写方式
Flash.Error(message string) 是 Flash.Out["error"] = message简写方式
在模板中使用key来获取Flash 消息。例如, 通过简写函数获取成功和错误消息:
{{.flash.success}}
{{.flash.error}}
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟