SPRING MVC - Validation(2)
19874 ワード
なぜValidationが必要なのか誰が知りたいですか?こちら
検証を作成するためにコードを作成するたびに、メッセージコードの作成が面倒になります.
考えてみれば,検証処理を行う場合,ほとんどの論理は最小値がいくらであるべきか,最大値がいくらであるべきか,NULLや空ではない.
したがって,Ben Validationは汎用化され標準化されており,検証がより簡単になる.
Ben Validatonは Spring MVCで spring-boot-start-validationライブラリ.(自動グローバル登録Validator) @NotBlank、@Range、@NotNull、@NotEmptyなど、複数のAnnot記号を提供します. Annotationに基づいて、MessageCodesResolverによって複数のメッセージコードを生成することができる. 優先度 Annotation.object name.field Annotation.field Annotation.type(field) Anntotation
この順序でメッセージを検索して出力します!
エラーメッセージをより詳細に表示できます.
会員入金状況仮定
SignupForm
この記事では、インフラストラクチャの金ヨンハン氏の「Spring MVC 2編−バックエンドWeb開発のキーテクノロジー」を学び、執筆する.
ソース:https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard
Bean Validation
検証を作成するためにコードを作成するたびに、メッセージコードの作成が面倒になります.
考えてみれば,検証処理を行う場合,ほとんどの論理は最小値がいくらであるべきか,最大値がいくらであるべきか,NULLや空ではない.
したがって,Ben Validationは汎用化され標準化されており,検証がより簡単になる.
Ben Validatonは
この順序でメッセージを検索して出力します!
エラーメッセージをより詳細に表示できます.
Code
会員入金状況仮定
SignupForm
@Data
public class SignupForm {
@NotEmpty(message="이름은 필수 입니다!")
private String name;
@NotEmpty(message = "비밀번호는 필수 입니다!")
private String password;
@NotNull(message="나이는 필수 입니다!")
private Integer age;
}
Controller@Controller
public class SignupController {
@GetMapping("/signup")
public String signupForm(Model model){
model.addAttribute("signupForm",new SignupForm());
return "signup";
}
@PostMapping("/signup")
public String signup(@Validated @ModelAttribute SignupForm form, BindingResult bindingResult){
if(bindingResult.hasErrors()){
return "signup";
}
return "redirect:/";
}
}
signup.html<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<style>
.field-error{
border-color:red;
color:red;
}
</style>
</head>
<body>
<div >
<div >
<h2 >회원 가입</h2>
</div>
<form th:action th:object="${signupForm}" method="post">
<div>
<label for="name" >이름</label>
<input type="text" id="name" th:field="*{name}" placeholder="이름을 입력하세요"
th:errorclass="field-error">
<div class="field-error" th:errors="*{name}">
이름 오류
</div>
</div>
<div>
<label for="password" >비밀번호</label>
<input type="text" id="password" th:field="*{password}"
placeholder="가격을 입력하세요" th:errorclass="field-error">
<div class="field-error" th:errors="*{password}">
가격 오류
</div>
</div>
<div>
<label for="age" >나이</label>
<input type="text" id="age" th:field="*{age}"
placeholder="가격을 입력하세요" th:errorclass="field-error">
<div class="field-error" th:errors="*{age}">
가격 오류
</div>
</div>
<div >
<input type="submit">
</div>
</form>
</div>
</body>
</html>
実行結果以上が私たちのヒントですありがとうございます
この記事では、インフラストラクチャの金ヨンハン氏の「Spring MVC 2編−バックエンドWeb開発のキーテクノロジー」を学び、執筆する.
ソース:https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard
Reference
この問題について(SPRING MVC - Validation(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@sungjin0757/SPRING-MVC-Validation2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol