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 错误信息

beego flash 数据的更多相关文章

  1. beego——flash数据

    这个flash与 Adobe/Macromedia Flash没有任何关系,它主要用于在两个逻辑间传递临时数据, flash中存放的所有数据会在紧接着的下一个逻辑中调用后清除. 一般用于传递提示和错误 ...

  2. flash数据交互

    新随笔 联系 订阅 管理 随笔 - 14  文章 - 5  评论 - 0 安卓中webview读取html,同时嵌入Flex的SWF,交互 安卓activity与html交互很简单,用javascri ...

  3. Flash数据的采集方法-搜房房价走势采集

    一般来说flash中的数据是不能被现有技术很容易采集到的,但是也不能谈flash色变,要具体问题具体分析,有些flash是可以通过一些分析发现背后的数据.然后采集就变得很容易了. 具体案例:搜房房价走 ...

  4. Beego学习笔记

    Beego学习笔记 Go 路由(Controller) 路由就是根据用户的请求找到需要执行的函数或者controller. Get /v1/shop/nike ShopController Get D ...

  5. golang学习笔记8 beego参数配置 打包linux命令

    golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/mvc/contro ...

  6. beego的配置文件记录

    摘自https://github.com/beego/tutorial/blob/master/zh/3/params.slide * beego的默认参数 - AppName 应用名称,默认是 be ...

  7. beego——参数配置

    beego目前支持INI.XML.JSON.YAML格式的配置文件解析,但是默认采用了INI格式解析,用户可以通过简单的配置就可以获得很大的灵活性. 一.默认配置解析 beego 默认会解析当前应用下 ...

  8. beego配置文件

    关于App配置: #App配置 for Api AppName = ApiService RunMode = dev RouterCaseSensitive = true ServerName = A ...

  9. beego 参数配置

    详细配置请参考:https://godoc.org/github.com/astaxie/beego#pkg-constants. App配置 AppName 应用名称,默认是 beego.通过bee ...

随机推荐

  1. 为什么用nginx:它的5个主要优点

    1.高并发,高性能 2.可扩展性好啊 3.高可靠性 4.热部署 5.BSD许可证

  2. void * 和 void 在函数返回值中的区别

    一个很容易糊涂的问题. 在函数的返回值中, void 是没有任何返回值, 而 void * 是返回任意类型的值的指针. 还是看代码吧: #include <stdlib.h> #inclu ...

  3. POJ_3663_贪心

    题目描述: 给你一堆数和一个限定的空间大小,要求求出两个数的和小于等于空间大小的对数. 思路: 贪心,先给一堆数从大到小排序. 第一个数取数组第一个,第二个数从第二个开始依次往后取,只要某个第二个数满 ...

  4. HDU_1175_dfs

    http://acm.hdu.edu.cn/showproblem.php?pid=1175 dfs(x,y,i,num),xy表示位置,i表示方向,num表示转向次数,num=2时候的剪枝很重要. ...

  5. 《Python学习手册 第五版》 -第1章 问答环节

    第一章的主要内容是解疑答惑的,这个部分也是很适合初学者的,回答了大部分初学者所关注的问题 1.为什么使用Python,或者说Python的优点, 作者是分为两个部分来谈的,人们使用中的经验总结以及Py ...

  6. 第2章 Java并行程序基础(二)

    2.3 volatile 与 Java 内存模型(JMM) volatile对于保证操作的原子性是由非常大的帮助的(可见性).但是需要注意的是,volatile并不能代替锁,它也无法保证一些复合操作的 ...

  7. JFrame的BorderLayout

    JFrame的默认布局就是BorderLayout,即将一个窗体划分为东西南北中五个板块. 如果往其中添加组件,中间面板大小随窗体大小变化,其余部分根据添加的组件的大小自适应. 容器变高,则North ...

  8. Go语言实现:【剑指offer】不用加减乘除做加法

    该题目来源于牛客网<剑指offer>专题. 第一步:相加各位的值,不算进位,得到010,二进制每位相加就相当于各位做异或操作,101^111. 第二步:计算进位值,得到1010,相当于各位 ...

  9. centos下升级php到5.6

    今天正好用空把php环境升级到5.6版本,首先我之前的环境是源码包编译的lnmp环境 首先到php官方网站上下载一个php5.6的tar包,放到机器上面后,开始安装,安装前先将nginx,mysql, ...

  10. C语言实现matlab的interp2()函数

    项目要用到matlab中的Vq = interp2(X,Y,V,Xq,Yq)函数,即把一个已知经纬度和对应值的矩阵,插值变换到一个给定经纬度网格中,也就是对给定网格填值,需要用到插值,这里使用双线性内 ...