스프링 웹 MVC 공부
클래스 단계의 @RequestMapping을 통해 중복 url을 통합해서 처리할 수 있다.
@RequestParam을 통해 요청 파라미터 사용
String int 등의 단순 타입이고 파라미터 이름이 쿼리 파라미터 이름과 같아면 @RequestParam도 생략가능 하지만 명확하게 요청 파라미터에서 데이터를 읽는 다는 것을 명시하기 위해 @RequestParam은 생략하지 않는 것도 좋다는 견해도 있다.
@RequestParam(required=false) 로 설정해주면 요청 파라미터가 없어도 동작한다. 하지만 이 떄 컨트롤러 메소드의 파라미터에 null을 넣어주기 때문에 타입이 primitive 형(int,long,double 등) 인 경우에는 500 에러를 발생시킨다. 이러한 경우에는 컨트롤러 메소드의 파라미터 타입을 null 을 받을 수 있는 객체 타입 Integer, Long, Double 등으로 바꿔 줘야 한다.
url을 'localhost:8080/param=' 과 같이 요청파라미터의 value 만 비워주면 빈 문자열 "" 이 들어간다.
@RequestParam 의 defaultValue 옵션을 통해 요청 파라미터가 없을 때 기본 값을 설정해 줄 수 있다. 이때는 위 예시 처럼 빈 문자열 "" 이 들어와도 defaultValue 값으로 적용된다.
@RequestParam Map<String,Object> paramMap 과 같이 맵으로 파라미터들을 한번에 받을 수 있다. 만약 파라미터의 키당 값이 여러개라면 MultiValueMap을 사용할 수 있다.
MultiValueMap
하나의 Key에 여러개의 Value값이 올 수있는 Map 타입. Value는 List로 관리된다. 구현체로는 LinkedMultiValueMap 가있다.
@ModelAttribute는 객체에서 setter 메소드를 찾아서 요청 파라미터 이름과 같은 객체 멤버명을 찾아 값을 입력(바인딩) 한다.(생략 가능)
정규식
https://blog.hexabrain.net/205
String의 split()메소드를 통해 문자열을 자를 때 정규식의 전후방 탐색을 사용하면 구분자를 포함아여 문자열을 자를 수 있다. 이를 통해 문제를 풀긴했지만 아직 사용법이 명확하게 머리에 들어오지 않아서 날을 잡고 문자열 처리 문제들을 몰아서 풀면서 정규식 연습을 좀 해봐야겠다.
'TIL' 카테고리의 다른 글
[TIL 2022-2-1] Spring MVC 공부 (0) | 2022.02.02 |
---|---|
[TIL 2022-1-30] 스프링 MVC 공부, 비트연산자 (0) | 2022.01.31 |
[TIL 2022-1-27] 스프링 MVC, 서블릿, 핸들러 어댑터 등 공부 (0) | 2022.01.28 |
[TIL 2022-1-26]스프링 MVC + 프로그래머스 공부 (0) | 2022.01.27 |
[2022-1-24] HTTP, 스프링 웹 MVC공부, 패스워드의 암호화 개념 (0) | 2022.01.25 |