Spring MVC의 Controller

charco·2021년 3월 31일
0

Annotations

Spring MVC는 어노테이션을 중심으로 구성된다.
어노테이션들에 대해 알아보자.

@Controller
자신이 컨트롤러라는 것을 명시한다.

@RequestMapping("경로")
컨트롤러의 url 경로를 명시해준다.
메소드에 따라 @GetMapping, @PostMapping 을 사용한다.

@InitBinder
자동으로 변환되지 않는 데이터들을 변환해준다. ex)Date

@DateTimeFormat(pattern="yyyy/MM/dd")
Date 타입의 데이터를 pattern으로 변환시킨다.

@ModelAttribute
Spring MVC에는 Model이라는 데이터 전달자가 있다.
Model은 컨트롤러에서 생성된 데이터를 객체로 만들어 JSP에 전달해준다.
@ModelAttribute는 파라미터를 강제로 Model에 담아 전달시킨다.


Controller의 리턴타입

void 타입
메서드의 이름이 view의 경로가 된다.
ex)

public void ex() -> /WEB-INF/views/ex.jsp

String 타입
반환받는 문자열이 view의 경로가 된다.
ex)

public String ex(){return "ex";}  -> /WEB-INF/views/ex.jsp

객체 타입
주로 JSON 데이터를 만들어 내는 용도로 사용한다.
ex)

public @ResponseBody ExampleDTO ex(){
	ExampleDTO dto = new ExampleDTO();
    dto.setName("Charco");
    dto.setAge(25);
    
    return dto;
}

브라우저 화면에는 {"name":"Charco","age":"25"} 가 보여진다.

ResonseEntity 타입
원하는 헤더 정보나 데이터를 전달할 수 있다.


파일 업로드 처리

1.pom.xml에 commons-fileupload dependency를 추가한다.

2.ServletConfig 클래스에 @Bean(name = "multipartResolver")를
이용해 메서드를 작성한다.

3.업로드를 위한 뷰를 작성하고

4.전달 받은 파일들을 확인한다.

3.메서드에는 파일의 크기, 임시 경로 등을 정의한다.


Controller 예외 처리

@ControllerAdvice
해당 객체가 Spring의 Controller에서 발생하는 Exception을 처리하는 존재임을 명시

@ExceptionHanlder(Exception 클래스타입.class)
Exception 클래스타입에 따라 예외를 처리
ex)Exception.class 로 지정하면 모든 예외처리를 해당 메서드에서 처리.

404Error
404에러는 페이지 url이 존재하지 않을때 발생한다.
이를 처리하기 위해 jsp파일을 만들고
WebConfig클래스에 cutomizeRegistration 메서드를
Override 한다.

profile
아직 배우는 중입니다

0개의 댓글