<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                Revel 自帶參數驗證功能: * 提供驗證上下文,用來收集和管理驗證錯誤(通過key 和 message)。 * 輔助函數用來檢查數據,并把錯誤信息帶到上下文中。 * 一個模板函數,從驗證上下文通過key獲取錯誤信息。 [示例應用程序](http://gorevel.cn/docs/samples/validation.html)提供了一些深入理解參數驗證的例子。 ## 內聯錯誤消息 下面演示使用內聯錯誤消息驗證字段 ~~~ func (c MyApp) SaveUser(username string) revel.Result { // Username (required) 至少 4 - 15 個字符. 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上下文中保存驗證錯誤并重定向 c.Validation.Keep() c.FlashParams() return c.Redirect(Hotels.Settings) } // All the data checked out! ... } ~~~ 1. `username`字段驗證條件 (Required必填, MinSize最小長度, MaxSize最大長度, Match匹配一個正則表達式). 2. 每個驗證條件返回一個?[ValidationResult](http://gorevel.cn/docs/docs/godoc/validation.html#ValidationResult),如果驗證沒有通過,驗證結果會被保存到驗證上下文中。 3. 作為構建應用程序的一部分,Revel記錄被驗證的變量的名稱,并使用它作為在驗證上下文的默認key(之后可以通過key獲取驗證錯誤消息)。 4. `Validation.HasErrors()`?如果驗證沒有通過,返回 true 5. `Validation.Keep()`?告訴 Revel 序列化 驗證錯誤消息到 Flash cookie中. 6. Revel 重定向到 Hotels.Settings 方法. Hotels.Settings 方法渲染一個模板: ~~~ {{/* app/views/Hotels/Settings.html */}} ... {{if .errors}}Please fix errors marked below!{{end}} ... <p class="{{if .errors.username}}error{{end}}"> Username: <input name="username" value="{{.flash.username}}"/> <span class="error">{{.errors.username.Message}}</span> </p> ~~~ 它做了三件事: 1. 檢查?`errors`?map 中是否存在key為?`username`的錯誤字段. 2. 帶回?`username`的字段值 3. 在input下面顯示錯誤消息(如果沒有指定驗證字段出錯后的錯誤消息,則會顯示驗證函數默認的錯誤消息) **注意:**模板函數?*field*?使用了驗證錯誤框架,使模板的編寫變得更加方便。 ## 置頂的錯誤消息 如果錯誤消息都顯示在一個地方,模板就變得簡單了 (比如,放到頁面頂部的一個紅色的盒子中.) 下面的例子與上面有兩個不同: 1. 我們為字段指定了一個驗證錯誤消息?`Message`,而不是使用驗證函數默認的錯誤信息 2. 我們在頁面的上方打印所有的錯誤消息 代碼如下: ~~~ 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() { // 保存錯誤信息到 flash 上下文中并重定向 c.Validation.Keep() c.FlashParams() return c.Redirect(Hotels.Settings) } // All the data checked out! ... } ~~~ 模板如下: ~~~ {{/* app/views/Hotels/Settings.html */}} ... {{if .errors}} <div class="error"> <ul> {{range .errors}} <li> {{.Message}}</li> {{end}} </ul> </div> {{end}} ... ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看