日韩无码专区无码一级三级片|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)銷解決方案
Spring認(rèn)證指南:了解如何使用Spring執(zhí)行表單驗(yàn)證

你將建造什么

您將構(gòu)建一個(gè)簡(jiǎn)單的 Spring MVC 應(yīng)用程序,該應(yīng)用程序接受用戶輸入并使用標(biāo)準(zhǔn)驗(yàn)證注釋檢查輸入。您還將看到如何在屏幕上顯示錯(cuò)誤消息,以便用戶可以重新輸入輸入以使其有效。

你需要什么

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

如何完成本指南

像大多數(shù) Spring入門指南一樣,您可以從頭開始并完成每個(gè)步驟,也可以繞過(guò)您已經(jīng)熟悉的基本設(shè)置步驟。無(wú)論哪種方式,您最終都會(huì)得到工作代碼。

要從頭開始,請(qǐng)繼續(xù)從 Spring Initializr 開始。

要跳過(guò)基礎(chǔ)知識(shí),請(qǐng)執(zhí)行以下操作:

  • 下載并解壓本指南的源代碼庫(kù),或使用Git克隆它:git clone https://github.com/spring-guides/gs-validating-form-input.git
  • 光盤進(jìn)入gs-validating-form-input/initial
  • 跳轉(zhuǎn)到創(chuàng)建PersonForm對(duì)象。

完成后,您可以對(duì)照中的代碼檢查結(jié)果

gs-validating-form-input/complete。

從 Spring Initializr 開始

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

手動(dòng)初始化項(xiàng)目:

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

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

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

創(chuàng)建PersonForm對(duì)象

該應(yīng)用程序涉及驗(yàn)證用戶的姓名和年齡,因此您首先需要?jiǎng)?chuàng)建一個(gè)支持用于創(chuàng)建人員的表單的類。以下清單(來(lái)自

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

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 + ")";
}
}復(fù)制

該類PersonForm有兩個(gè)屬性:name和age。它帶有一些標(biāo)準(zhǔn)的驗(yàn)證注釋:

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

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

創(chuàng)建 Web 控制器

現(xiàn)在您已經(jīng)定義了表單支持對(duì)象,是時(shí)候創(chuàng)建一個(gè)簡(jiǎn)單的 Web 控制器了。以下清單(來(lái)自

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

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";
}
}

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

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

該checkPersonInfo方法接受兩個(gè)參數(shù):

  • 一個(gè)personForm用 標(biāo)記的對(duì)象,@Valid用于收集表單中填寫的屬性。
  • 一個(gè)bindingResult對(duì)象,以便您可以測(cè)試和檢索驗(yàn)證錯(cuò)誤。

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

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

構(gòu)建 HTML 前端

現(xiàn)在構(gòu)建“主”頁(yè)面,如以下清單(來(lái)自

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



















Name: Name Error
Age: Age Error



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

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

以下示例(來(lái)自

src/main/resources/templates/results.html)顯示了結(jié)果頁(yè)面:



Congratulations! You are old enough to sign up for this site.

在這個(gè)簡(jiǎn)單的示例中,這些網(wǎng)頁(yè)沒有任何復(fù)雜的 CSS 或 JavaScript。

運(yùn)行應(yīng)用程序

對(duì)于此應(yīng)用程序,您使用的是Thymeleaf的模板語(yǔ)言。此應(yīng)用程序需要的不僅僅是原始 HTML。Spring Initializr 為您創(chuàng)建了一個(gè)應(yīng)用程序類。以下清單(來(lái)自

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,您通常會(huì)添加@EnableWebMvc到Application類中。但是當(dāng) Spring Boot在你的類路徑上@SpringBootApplication檢測(cè)到時(shí),它已經(jīng)添加了這個(gè)注解spring-webmvc。同樣的注解讓它可以找到被注解的@Controller類和它的方法。

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

構(gòu)建一個(gè)可執(zhí)行的 JAR

您可以使用 Gradle 或 Maven 從命令行運(yùn)行應(yīng)用程序。您還可以構(gòu)建一個(gè)包含所有必要依賴項(xiàng)、類和資源的單個(gè)可執(zhí)行 JAR 文件并運(yùn)行它。構(gòu)建可執(zhí)行 jar 可以在整個(gè)開發(fā)生命周期、跨不同環(huán)境等中輕松地將服務(wù)作為應(yīng)用程序交付、版本化和部署。

如果您使用 Gradle,則可以使用./gradlew bootRun. 或者,您可以使用構(gòu)建 JAR 文件./gradlew build,然后運(yùn)行 JAR 文件,如下所示:

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

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

java -jar 目標(biāo)/gs-validating-form-input-0.1.0.jar

此處描述的步驟創(chuàng)建了一個(gè)可運(yùn)行的 JAR。您還可以構(gòu)建經(jīng)典的 WAR 文件。

應(yīng)用程序應(yīng)在幾秒鐘內(nèi)啟動(dòng)并運(yùn)行。

如果您訪問(wèn)http://localhost:8080/,您應(yīng)該會(huì)看到類似下圖的內(nèi)容:

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

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

如果您輸入有效的姓名和年齡,您最終會(huì)進(jìn)入該results頁(yè)面,如下圖所示:

總結(jié)

恭喜!您已經(jīng)編寫了一個(gè)簡(jiǎn)單的 Web 應(yīng)用程序,并在域?qū)ο笾袃?nèi)置了驗(yàn)證功能。這樣,您可以確保數(shù)據(jù)符合特定標(biāo)準(zhǔn)并且用戶正確輸入數(shù)據(jù)。


本文題目:Spring認(rèn)證指南:了解如何使用Spring執(zhí)行表單驗(yàn)證
當(dāng)前網(wǎng)址:http://m.5511xx.com/article/dpjcphs.html