成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring認證指南:了解如何使用 Spring 執行表單驗證

開發 前端
本指南將引導您完成配置 Web 應用程序表單以支持驗證的過程。

本指南將引導您完成配置 Web 應用程序表單以支持驗證的過程。

你將建造什么

您將構建一個簡單的 Spring MVC 應用程序,該應用程序接受用戶輸入并使用標準驗證注釋檢查輸入。您還將看到如何在屏幕上顯示錯誤消息,以便用戶可以重新輸入輸入以使其有效。

你需要什么

  • 約15分鐘
  • 最喜歡的文本編輯器或 IDE
  • JDK 1.8或更高版本
  • Gradle 4+或Maven 3.2+
  • 您還可以將代碼直接導入 IDE:彈簧工具套件 (STS)IntelliJ IDEA

如何完成本指南

像大多數 Spring入門指南一樣,您可以從頭開始并完成每個步驟,也可以繞過您已經熟悉的基本設置步驟。無論哪種方式,您最終都會得到工作代碼。

要從頭開始,請繼續從 Spring Initializr 開始。

要跳過基礎知識,請執行以下操作:

  • 下載并解壓本指南的源代碼庫,或使用Git克隆它:git clone https://github.com/spring-guides/gs-validating-form-input.git
  • 光盤進入gs-validating-form-input/initial
  • 跳轉到創建PersonForm對象。

完成后,您可以對照中的代碼檢查結果

gs-validating-form-input/complete。

從 Spring Initializr 開始

您可以使用這個預先初始化的項目并單擊 Generate 下載 ZIP 文件。此項目配置為適合本教程中的示例。

手動初始化項目:

  1. 導航到https://start.spring.io。該服務提取應用程序所需的所有依賴項,并為您完成大部分設置。
  2. 選擇 Gradle 或 Maven 以及您要使用的語言。本指南假定您選擇了 Java。
  3. 單擊Dependencies并選擇Spring Web、Thymeleaf和Validation。
  4. 單擊生成。
  5. 下載生成的 ZIP 文件,該文件是根據您的選擇配置的 Web 應用程序的存檔。

如果您的 IDE 具有 Spring Initializr 集成,您可以從您的 IDE 完成此過程。

你也可以從 Github 上 fork 項目并在你的 IDE 或其他編輯器中打開它。

創建PersonForm對象

該應用程序涉及驗證用戶的姓名和年齡,因此您首先需要創建一個支持用于創建人員的表單的類。以下清單(來自

src/main/java/com/example/validatingforminput/PersonForm.java)顯示了如何執行此操作:

package com.example.validatingforminput;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class PersonForm {

@NotNull
@Size(min=2, max=30)
private String name;

@NotNull
@Min(18)
private Integer age;

public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

public String toString() {
return "Person(Name: " + this.name + ", Age: " + this.age + ")";
}
}復制

該類PersonForm有兩個屬性:name和age。它帶有一些標準的驗證注釋:

  • @Size(min=2, max=30):允許名稱長度在 2 到 30 個字符之間。
  • @NotNull:不允許空值,這是 Spring MVC 在條目為空時生成的值。
  • @Min(18): 不允許年齡低于 18 歲。

除此之外,您還可以查看 and 的 getter 和 settername以及age一個方便的toString()方法。

創建 Web 控制器

現在您已經定義了表單支持對象,是時候創建一個簡單的 Web 控制器了。以下清單(來自

src/main/java/com/example/validatingforminput/WebController.java)顯示了如何執行此操作:

package com.example.validatingforminput;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Controller
public class WebController implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/results").setViewName("results");
}
@GetMapping("/")
public String showForm(PersonForm personForm) {
return "form";
}
@PostMapping("/")
public String checkPersonInfo(@Valid PersonForm personForm, BindingResult bindingResult) {

if (bindingResult.hasErrors()) {
return "form";
}
return "redirect:/results";
}
}

這個控制器有一個 GET 方法和一個 POST 方法。兩種方法都映射到/.

該showForm方法返回form模板。它在其方法簽名中包含 a PersonForm,以便模板可以將表單屬性與PersonForm.

該checkPersonInfo方法接受兩個參數:

  • 一個personForm用 標記的對象,@Valid用于收集表單中填寫的屬性。
  • 一個bindingResult對象,以便您可以測試和檢索驗證錯誤。

您可以從綁定到PersonForm對象的表單中檢索所有屬性。在代碼中,您測試錯誤。如果遇到錯誤,可以將用戶發送回原始form模板。在這種情況下,將顯示所有錯誤屬性。

如果人員的所有屬性都有效,則它將瀏覽器重定向到最終results模板。

構建 HTML 前端

現在構建“主”頁面,如以下清單(來自

src/main/resources/templates/form.html)所示:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<form action="#" th:action="@{/}" th:object="${personForm}" method="post">
<table>
<tr>
<td>Name:</td>
<td><input type="text" th:field="*{name}" /></td>
<td th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Name Error</td>
</tr>
<tr>
<td>Age:</td>
<td><input type="text" th:field="*{age}" /></td>
<td th:if="${#fields.hasErrors('age')}" th:errors="*{age}">Age Error</td>
</tr>
<tr>
<td><button type="submit">Submit</button></td>
</tr>
</table>
</form>
</body>
</html>

該頁面包含一個簡單的表單,其每個字段都位于表格的單獨單元格中。該表格適合發布到/. 它被您在 Web 控制器personForm的方法中看到的對象標記為正在備份。GET這被稱為“bean-backed form”。bean中有兩個字段PersonForm,您可以看到它們用th:field="*{name}"和標記th:field="*{age}"。每個字段旁邊是一個輔助元素,用于顯示任何驗證錯誤。

最后,您有一個提交表單的按鈕。通常,如果用戶輸入的姓名或年齡違反了@Valid限制,它會彈回該頁面并顯示錯誤消息。如果輸入了有效的姓名和年齡,用戶將被路由到下一個網頁。

以下示例(來自

src/main/resources/templates/results.html)顯示了結果頁面:

<html>
<body>
Congratulations! You are old enough to sign up for this site.
</body>
</html>

在這個簡單的示例中,這些網頁沒有任何復雜的 CSS 或 JavaScript。

運行應用程序

對于此應用程序,您使用的是Thymeleaf的模板語言。此應用程序需要的不僅僅是原始 HTML。Spring Initializr 為您創建了一個應用程序類。以下清單(來自

src/main/java/com/example/validatingforminput/ValidatingFormInputApplication.java)顯示了該類:

package com.example.validatingforminput;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ValidatingFormInputApplication {

public static void main(String[] args) throws Exception {
SpringApplication.run(ValidatingFormInputApplication.class, args);
}

}

要激活 Spring MVC,您通常會添加@EnableWebMvc到Application類中。但是當 Spring Boot在你的類路徑上@SpringBootApplication檢測到時,它已經添加了這個注解spring-webmvc。同樣的注解讓它可以找到被注解的@Controller類和它的方法。

Thymeleaf 配置也由@SpringBootApplication. 默認情況下,模板位于類路徑下templates/,并通過從文件名中去除“.html”后綴來解析為視圖。(Thymeleaf 設置可以通過多種方式更改和覆蓋,具體取決于您需要實現的目標,但詳細信息與本指南無關。)

構建一個可執行的 JAR

您可以使用 Gradle 或 Maven 從命令行運行應用程序。您還可以構建一個包含所有必要依賴項、類和資源的單個可執行 JAR 文件并運行它。構建可執行 jar 可以在整個開發生命周期、跨不同環境等中輕松地將服務作為應用程序交付、版本化和部署。

如果您使用 Gradle,則可以使用./gradlew bootRun. 或者,您可以使用構建 JAR 文件./gradlew build,然后運行 JAR 文件,如下所示:

java -jar build/libs/gs-validating-form-input-0.1.0.jar

如果您使用 Maven,則可以使用./mvnw spring-boot:run. 或者,您可以使用構建 JAR 文件,./mvnw clean package然后運行該 JAR 文件,如下所示:

java -jar 目標/gs-validating-form-input-0.1.0.jar

此處描述的步驟創建了一個可運行的 JAR。您還可以構建經典的 WAR 文件。

應用程序應在幾秒鐘內啟動并運行。

如果您訪問http://localhost:8080/,您應該會看到類似下圖的內容:

以下一對圖像顯示了如果您輸入N姓名和15年齡并單擊提交會發生什么:

前面的圖像顯示,由于值違反了PersonForm類中的約束,您會被彈回“主”頁面。請注意,如果您在輸入框中單擊提交而沒有任何內容,則會收到不同的錯誤,如下圖所示:

如果您輸入有效的姓名和年齡,您最終會進入該results頁面,如下圖所示:

總結

恭喜!您已經編寫了一個簡單的 Web 應用程序,并在域對象中內置了驗證功能。這樣,您可以確保數據符合特定標準并且用戶正確輸入數據。

責任編輯:姜華 來源: 今日頭條
相關推薦

2022-03-17 08:17:45

SpringGemFire緩存數據

2022-03-01 14:55:39

數據庫Spring批處理

2022-04-15 08:25:00

SpringjQuery客戶端

2022-06-28 07:03:59

架構認證安全

2022-06-28 15:04:32

容器Docker

2022-06-28 15:06:35

容器Spring

2024-03-13 14:35:33

Spring事件異步

2024-02-18 12:44:22

2021-12-28 11:13:05

安全認證 Spring Boot

2020-05-25 07:00:00

雙因素認證身份認證密碼

2024-01-02 08:18:41

2025-05-09 07:20:02

Spring數據庫檢索

2021-06-26 14:59:13

SpringTransaction執行

2023-05-05 18:38:33

多級緩存Caffeine開發

2019-11-29 16:21:22

Spring框架集成

2023-11-08 08:15:48

服務監控Zipkin

2017-03-23 09:29:06

2024-04-18 09:34:28

Reactor項目異步編程

2009-10-09 13:42:56

Spring DataSpring DM

2022-09-06 08:40:33

應用系統登錄方式Spring
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线a| 国产欧美一区二区三区日本久久久 | 日韩久久久久 | 99热在这里只有精品 | 精品中文字幕一区 | 中文字幕一区二区三区日韩精品 | 久久黄色精品视频 | 精品久久中文字幕 | 欧美精品久久久久 | 中文字幕 在线观看 | 日韩免费激情视频 | 国产精品久久久久一区二区三区 | 羞羞免费网站 | 精精精精xxxx免费视频 | 91av视频| xx性欧美肥妇精品久久久久久 | 久久99精品久久久久蜜桃tv | 国产精品视频一二三区 | 亚洲综合区 | 久久久精品一区 | 亚洲精品免费在线 | www日本高清视频 | 精品美女久久久久久免费 | chengrenzaixian| av黄色免费在线观看 | 亚洲精品一区二区三区蜜桃久 | 91亚洲国产成人久久精品网站 | 午夜一区二区三区 | 日本在线精品视频 | 亚洲精品电影 | 日韩欧美亚洲一区 | 91中文视频 | www国产成人免费观看视频 | 精品国产乱码久久久久久88av | 国产精品91视频 | 91在线免费观看 | 亚洲一本| 国产精品久久777777 | 日韩一区二区成人 | 毛片视频免费观看 | 精品小视频|