<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                **1. 引入JSR303框架** ```xml <!-- JSR 303 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.2.1.Final</version> </dependency> <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging</artifactId> <version>3.1.0.CR2</version> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version> </dependency> ``` **2. 在實體類的屬性上標注JSR 303約束注解** ```java @Data public class Supplier { @NotEmpty(message = "code不能為空!") private String code; @NotEmpty(message = "phone不能為空!") @Length(min = 7, max = 11, message = "phone的長度應該在7~11位之間!") private String phone; @DateTimeFormat(pattern = "yyyy-MM-dd") @Past(message = "modifiedTime必須是一個過去的時間") private Date modifiedTime; } ``` **3. controller層** ```java @Controller @RequestMapping("/supplier") public class SupplierController { @GetMapping("/to/page") public String toSupplier(@ModelAttribute("supplier") Supplier supplier) { return "supplier"; } /** * 使用注解@Valid來驗證數據是否符合要求,@Valid標記的參數后面必須緊接著BindingResult,否則Spring拋出異常 */ @PostMapping("/action/add") public String addSupplier(@Valid Supplier supplier, BindingResult bindingResult, HttpServletRequest request) { if (bindingResult.hasErrors()) { System.out.println("數據綁定異常!"); request.setAttribute("data", "數據綁定異常"); return "supplier"; } request.setAttribute("data", supplier.toString()); return "supplier"; } } ``` **4. 視圖層** *`webapp/WEB-INF/views/supplier.jsp`* ```html <body> <h1>${ data }</h1> <fieldset> <legend>添加供應商</legend> <fm:form method="post" modelAttribute="supplier" action="${pageContext.request.contextPath }/supplier/action/add"> <div> code:<fm:input path="code"/>*<fm:errors path="code" style="color:red"/> </div> <div> phone:<fm:input path="phone"/>*<fm:errors path="phone" style="color:red"/> </div> modifiedTime:<fm:input path="modifiedTime"/>*<fm:errors path="modifiedTime" style="color:red"/> <div> <input type="submit" value="提交"/> </div> </fm:form> </fieldset> </body> ``` **5. 測試** (2)驗證不通過。 ![](https://img.kancloud.cn/43/ff/43ff369226552bc6bf6fb04212e9689f_1681x331.jpg) (3)驗證通過。 ![](https://img.kancloud.cn/46/c7/46c7cad303518a9b79afb5e94a00a69c_2300x355.jpg)
                  <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>

                              哎呀哎呀视频在线观看