Beego框架:flash資料
阿新 • • 發佈:2018-11-21
這個 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) }
上面的程式碼執行的大概邏輯是這樣的:
- Get 方法執行,因為沒有 flash 資料,所以顯示設定頁面。
- 使用者設定資訊之後點選遞交,執行 Post,然後初始化一個flash,通過驗證,驗證出錯或者驗證不通過設定 flash 的錯誤,如果通過了就儲存設定,然後設定 flash 成功設定的資訊。
- 設定完成後跳轉到 Get 請求。
- Get 請求獲取到了 Flash資訊,然後執行相應的邏輯,如果出錯顯示出錯的頁面,如果成功顯示成功的頁面。
預設情況下 ReadFromRequest 函式已經實現了讀取的資料賦值給 flash,所以在你的模板裡面你可以這樣讀取資料:
{{.flash.error}}
{{.flash.warning}}
{{.flash.notice}}
flash 物件有三個級別的設定:
- Notice 提示資訊
- Warning 警告資訊
- Error 錯誤資訊
學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928
清華團隊帶你實戰區塊鏈開發
掃碼獲取海量視訊及原始碼 QQ群:721929980