스프링 MVC에는 모든 컨트롤러에 적용할 수 있는 글로벌 범위 Validator 와 단일 컨트롤러에 적용할 수 있는 Validator를 설정하는 방법이 있다. 글로벌 범위 Validator (@Valid) 글로벌 범위 Validator는 모든 컨트롤러에 적용할수 있는 Validator 이다. 글로벌 범위 Validator를 적용하려면 다음 두 가지를 설정해야 한다. 1. 설정 클래스에서 WebMvcConfigurer의 getValidator() 메서드가 Validator 구현 객체를 리턴하도록 구현 package config; // .. // Spring MVC 설정 @Configuration @EnableWebMvc public class MvcConfig implements WebMvcConfigu..

이전에 구현한 회원가입 페이지는 올바르지 않은 이메일 주소를 입력하거나 이름을 입력하지 않아도 정상적으로 처리됐다. 또한 중복된 이메일 주소를 입력해서 다시 폼을 보여줄때도 에러 메시지가 출력되지 않고 그냥 다시 폼 페이지가 로드 됐다. 즉 다음 두가지가 수행되지 않았다. 1. 폼 값 검증 2. 에러 메시지 처리 스프링 MVC에서 커맨드 객체의 값이 올바른지 검사할때 다음 두가지 인터페이스를 사용한다. import org.springframework.validation.Errors; import org.springframework.validation.Validator; Validator 인터페이스 public interface Validator { boolean supports(Class clazz); ..
지금까지 작성한 jsp 파일을 보면 문자 출력을 아래와 같이 했다. title에 설문조사 라고 출력하고 싶다면 설문조사라고 태그에 입력했다. 하지만 만약 설문조사 라는 title을 갖는 곳이 여러 군데이고, 일괄적으로 설문조사 라는 이름을 예를들어 설문목록으로 바꾸고 싶다면, 모든 곳에 가서 일일히 바꿔줘야 한다. 또한 웹이 다국어를 지원하게 되면 사용자의 언어 설정에 따라 출력되는 언어가 바뀌어야 한다. 이런 문제를 해결하기 위해 스프링에서는 태그와 MessageSource를 지원한다. 태그와 MessageSource를 이용해 문자를 출력하는 방법은 다음과 같다. 1. 문자열들을 담을 메시지 파일 (.properties)을 작성한다. 2. 위의 .properties 파일에서 문자열을 읽어오는 Messa..
SurveyController.java @Controller @RequestMapping("/survey") // 이 클래스는 "/survey" 경로 처리 public class SurveyController { // GET 방식의 "/survey" 경로 요청 처리 (주소창 직접 입력은 GET 방식) @GetMapping public String form(Model model) { List questions = createQuestions(); model.addAttribute("questions", questions); return "survey/surveyForm"; } // ... } 지금까지 컨트롤러는 위의 form() 메서드처럼 Model에 전달할 데이터를 추가하고, 뷰 이름을 String으로 ..
- Total
- Today
- Yesterday
- Implementation
- graph
- dfs
- MVC
- CSS
- Tree
- Stack
- db
- greedy
- 자료구조
- C++
- 재귀
- back tracking
- C
- Spring
- priority queue
- floyd warshall
- binary search
- DP
- 조합
- Brute Force
- permutation
- Unity
- Python
- recursion
- BFS
- 이분탐색
- Dijkstra
- Kruskal
- two pointer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |