日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Revel教程:Revel參數(shù)驗(yàn)證

Revel 自帶參數(shù)驗(yàn)證功能:

  • 提供驗(yàn)證上下文,用來(lái)收集和管理驗(yàn)證錯(cuò)誤(通過(guò)key 和 message)。
  • 輔助函數(shù)用來(lái)檢查數(shù)據(jù),并把錯(cuò)誤信息帶到上下文中。
  • 一個(gè)模板函數(shù),從驗(yàn)證上下文通過(guò)key獲取錯(cuò)誤信息。

示例應(yīng)用程序提供了一些深入理解參數(shù)驗(yàn)證的例子。

內(nèi)聯(lián)錯(cuò)誤消息

下面演示使用內(nèi)聯(lián)錯(cuò)誤消息驗(yàn)證字段

func (c MyApp) SaveUser(username string) revel.Result {
    // Username (required) 至少 4 - 15 個(gè)字符.
    c.Validation.Required(username)
    c.Validation.MaxSize(username, 15)
    c.Validation.MinSize(username, 4)
    c.Validation.Match(username, regexp.MustCompile("^\\w*$"))

    if c.Validation.HasErrors() {
        // 在flash上下文中保存驗(yàn)證錯(cuò)誤并重定向
        c.Validation.Keep()
        c.FlashParams()
        return c.Redirect(Hotels.Settings)
    }

    // All the data checked out!
    ...
}
  1. username字段驗(yàn)證條件 (Required必填, MinSize最小長(zhǎng)度, MaxSize最大長(zhǎng)度, Match匹配一個(gè)正則表達(dá)式).
  2. 每個(gè)驗(yàn)證條件返回一個(gè) ValidationResult,如果驗(yàn)證沒(méi)有通過(guò),驗(yàn)證結(jié)果會(huì)被保存到驗(yàn)證上下文中。
  3. 作為構(gòu)建應(yīng)用程序的一部分,Revel記錄被驗(yàn)證的變量的名稱,并使用它作為在驗(yàn)證上下文的默認(rèn)key(之后可以通過(guò)key獲取驗(yàn)證錯(cuò)誤消息)。
  4. Validation.HasErrors() 如果驗(yàn)證沒(méi)有通過(guò),返回 true
  5. Validation.Keep() 告訴 Revel 序列化 驗(yàn)證錯(cuò)誤消息到 Flash cookie中.
  6. Revel 重定向到 Hotels.Settings 方法.

Hotels.Settings 方法渲染一個(gè)模板:

{{/* app/views/Hotels/Settings.html */}}
...
{{if .errors}}Please fix errors marked below!{{end}}
...

Username: {{.errors.username.Message}}

它做了三件事:

  1. 檢查 errors map 中是否存在key為 username的錯(cuò)誤字段.
  2. 帶回 username的字段值
  3. 在input下面顯示錯(cuò)誤消息(如果沒(méi)有指定驗(yàn)證字段出錯(cuò)后的錯(cuò)誤消息,則會(huì)顯示驗(yàn)證函數(shù)默認(rèn)的錯(cuò)誤消息)

注意:模板函數(shù) field 使用了驗(yàn)證錯(cuò)誤框架,使模板的編寫(xiě)變得更加方便。

置頂?shù)腻e(cuò)誤消息

如果錯(cuò)誤消息都顯示在一個(gè)地方,模板就變得簡(jiǎn)單了 (比如,放到頁(yè)面頂部的一個(gè)紅色的盒子中.)

下面的例子與上面有兩個(gè)不同:

  1. 我們?yōu)樽侄沃付艘粋€(gè)驗(yàn)證錯(cuò)誤消息 Message,而不是使用驗(yàn)證函數(shù)默認(rèn)的錯(cuò)誤信息
  2. 我們?cè)陧?yè)面的上方打印所有的錯(cuò)誤消息

代碼如下:

func (c MyApp) SaveUser(username string) revel.Result {
    // Username (必填) 至少 4 - 15 字符.
    c.Validation.Required(username).Message("Please enter a username")
    c.Validation.MaxSize(username, 15).Message("Username must be at most 15 characters long")
    c.Validation.MinSize(username, 4).Message("Username must be at least 4 characters long")
    c.Validation.Match(username, regexp.MustCompile("^\\w*$")).Message("Username must be all letters")

    if c.Validation.HasErrors() {
        // 保存錯(cuò)誤信息到 flash 上下文中并重定向
        c.Validation.Keep()
        c.FlashParams()
        return c.Redirect(Hotels.Settings)
    }

    // All the data checked out!
    ...
}

模板如下:

{{/* app/views/Hotels/Settings.html */}}
...
{{if .errors}}
    {{range .errors}}
  • {{.Message}}
  • {{end}}
{{end}} ...

當(dāng)前名稱:創(chuàng)新互聯(lián)Revel教程:Revel參數(shù)驗(yàn)證
文章URL:http://www.5511xx.com/article/dphhgec.html