flash 数据

这个 flash 与 Adobe/Macromedia Flash 没有任何关系。它主要用于在两个逻辑间传递临时数据,flash 中存放的所有数据会在紧接着的下一个逻辑中调用后清除。一般用于传递提示和错误消息。它适合 Post/Redirect/Get 模式。下面看使用的例子:

// 显示设置信息
func (c *MainController) Get() {
flash:=beego.ReadFromRequest(&c.Controller)
if n,ok:=flash.Data["notice"];ok{
// 显示设置成功
c.TplName = "set_success.html"
}else if n,ok=flash.Data["error"];ok{
// 显示错误
c.TplName = "set_error.html"
}else{
// 不然默认显示设置页面
c.Data["list"]=GetInfo()
c.TplName = "setting_list.html"
}
} // 处理设置信息
func (c *MainController) Post() {
flash:=beego.NewFlash()
setting:=Settings{}
valid := Validation{}
c.ParseForm(&setting)
if b, err := valid.Valid(setting);err!=nil {
flash.Error("Settings invalid!")
flash.Store(&c.Controller)
c.Redirect("/setting",302)
return
}else if b!=nil{
flash.Error("validation err!")
flash.Store(&c.Controller)
c.Redirect("/setting",302)
return
}
saveSetting(setting)
flash.Notice("Settings saved!")
flash.Store(&c.Controller)
c.Redirect("/setting",302)
}

上面的代码执行的大概逻辑是这样的:

  1. Get 方法执行,因为没有 flash 数据,所以显示设置页面。
  2. 用户设置信息之后点击递交,执行 Post,然后初始化一个 flash,通过验证,验证出错或者验证不通过设置 flash 的错误,如果通过了就保存设置,然后设置 flash 成功设置的信息。
  3. 设置完成后跳转到 Get 请求。
  4. Get 请求获取到了 Flash 信息,然后执行相应的逻辑,如果出错显示出错的页面,如果成功显示成功的页面。

默认情况下 ReadFromRequest 函数已经实现了读取的数据赋值给 flash,所以在你的模板里面你可以这样读取数据:

{{.flash.error}}
{{.flash.warning}}
{{.flash.notice}}

flash 对象有三个级别的设置:

  • Notice 提示信息
  • Warning 警告信息
  • Error 错误信息

最新文章

  1. css3动态旋转魔方练习
  2. C#——Marshal.StructureToPtr方法简介
  3. Rime 鼠须管 配色方案
  4. TOMCAT如何建立两个端口或服务
  5. 修改mysql默认字符集的方案
  6. 软件开发之路、Step 1 需求分析
  7. 第七章 管理类型(In .net4.5) 之 使用类型
  8. UVaLive 6693 Flow Game (计算几何,线段相交)
  9. Java学习笔记--堆、栈、常量池
  10. 无线网络中,使用MDK3把指定的用户或者热点踢到掉线
  11. ●POJ 2828 Buy Tickets
  12. Lintcode489-Convert Array List to Linked List-Easy
  13. EXCE 表格导入导出遇到问题(easypoi)
  14. DNS基础
  15. Rest API的简单应用
  16. 【Java基本功】聊聊抽象类和接口的区别
  17. VMware 桥接 Bridge 复制物理网络连接状态
  18. ZOJ_3950_How Many Nines 解题报告及如何对程序进行测试修改
  19. linux command ------ tar
  20. C语言强化——指针

热门文章

  1. html网页压缩保存到数据库,减少空间占用,实现过程遇到的解压问题
  2. NLP(二十)利用BERT实现文本二分类
  3. Go语言标准库之net/http
  4. CSS绝对定位absolute详解
  5. java4选择结构 二
  6. DRF框架的安装与使用
  7. postman之存储测试结果
  8. CentOS 6.4安装mongo的php扩展包
  9. Scala函数式编程(五) 函数式的错误处理
  10. 《Head first设计模式》之迭代器模式