1.pom.xml 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
private int id;
private String username;
@Size(min = 10, message="Enter at Enter at least 10 character")
private String description;
private LocalDate targetDate;
private boolean done;
Validation을 추가 해주고 싶은 필드 위에 @Size 어노테이션을 추가 해 준다
Size 말고도 여러 Validation들을 추가 해 줄 수 있다!
@RequestMapping(value="add-todo", method = RequestMethod.POST)
public String addNewTodo(//@RequestParam String description,
ModelMap model, @Valid Todo todo) {
String username = (String)model.get("name");
todoService.addTodo(username, todo.getDescription(), LocalDate.now().plusYears(1), false);
return "redirect:list-todos";
}
@RequestMapping(value="add-todo", method = RequestMethod.POST)
public String addNewTodo(//@RequestParam String description,
ModelMap model, @Valid Todo todo, BindingResult result) {
if(result.hasErrors()) {
return "todo";
}
String username = (String)model.get("name");
todoService.addTodo(username, todo.getDescription(), LocalDate.now().plusYears(1), false);
return "redirect:list-todos";
}
<div class="container">
<h1>Enter Todo Details</h1>
<form:form method="post" modelAttribute="todo"> <!-- controller의 todo -->
Description: <form:input type="text" path="description" required="required"/>
<form:errors path="description" required="required" cssClass="text-warning"/>
<form:input type="hidden" path="id"/>
<form:input type="hidden" path="done"/>
<input type="submit" class="btn btn-success"/>
</form:form>
</div>
<form:errors path="description" required="required" cssClass="text-warning"/>
에러메세지를 form:errors 로 처리해준다
HTML 태그가 아닌 스프링 태그이기 때문에 cssClass를 추가해서 부트스트랩을 적용한다
적용성공!
자바스크립트보다 훨씬 편리해보이고 코드도 적은데
앞으로의 프로젝트에 적용해서 자바스크립트 validation과 비교해봐야겠다