도담도담

Spring MVC를 이용한 구현 본문

IT 공부/KH 정보교육원

Spring MVC를 이용한 구현

Zinisang 2021. 6. 23. 22:20

 


1. XML 문서를 이용한 설정 방법

 

  • Controller가 수시로 변경되어야 하는 경우(주로 솔루션 개발하는 업체에서 사용)
  • 설정 방법
    • Spring Bean Configuration 설정 파일(~~.xml) 내부에 HandlerMapping / 각 Controller / ViewResolver 클래스에 대한 등록 필요
    • <bean id="" class=""></bean> 과 같은 형식으로 등록
    • 등록순서:
      • 일반적으로 HandlerMapping / 각 Controller / ViewResolver 순으로 등록...

2. annotation을 이용한 설정 방법

  • Controller 가 고정되어서 사용되는 경우(특정 기업에 대한 어플리케이션 개발 시)
  • 설정 방법
    • 각 Controller 클래스 선언부 위에 @Controller를 추가(단, POJO 형식의 클래스)
    • Controller 클래스 내부에서 로직을 처리하는 메서드 선언부 위에는
      • @RequestMapping(value="요청사항") 을 추가
      • 해당 메서드의 매개변수는 각 메서드가 해야하는 일에 따라 VO 객체 타입만 선언할 수도 있고,
      • VO와 DAO 타입을 모두 선언할 수도 있다.

위의 @Controller 와 @RequestMapping 는 필수!! 나머지는 다 선택사항


@RequestMapping

- 반환되는 타입은 String 타입..
- 이 때, return 되는 값에 따라 "redirect:" 라는 접두사를 추가할 수도 있다..
- 웹 브라우저가 재요청이 필요한 경우에는 "redirect:" 접두사를 포함하여 리턴.
- 단순히 화면이 필요한 경우에는 해당 결과만...

  • 개발자가 직접 객체명을 지정할 경우
@RequestMapping(value="요청사항", method="요청방식")
public String test(UserVO vo){
	~~~
}
@RequestMapping(value="요청사항", method="요청방식")
public String test(@ModelAttribute("객체명") UserVO vo){
	~~~
}


@ModelAttribute("객체명")와 같이 설정하여 사용 가능!!

 

 

  • 컨트롤러 내부의 메서드들에 대한 반환 타입을 통일할 경우

 

1. 모든 메서드의 반환타입을 ModelAndView 로 통일

 

JSP에서 사용할 데이터가 없이 화면만 응답할 경우

public ModelAndView test(~~~, ModelAndView mav){
	mav.setViewName("화면처리");
	return mav;
}



JSP에서 사용할 데이터를 포함하여 화면까지 응답할 경우

public ModelAndView test(~~~, ModelAndView mav){
	mav.addObject("이름", 전달할 데이터(객체));
	mav.setViewName("화면처리");
	return mav;
}

 



2. 모든 메서드의 반환타입을 String 로 통일

 

JSP에서 사용할 데이터가 없이 화면만 응답할 경우

public String test(~~~){
	return "화면처리";
}


JSP에서 사용할 데이터를 포함하여 화면까지 응답할 경우

public String test(~~~, Model model){
	model.addAttribute("이름", 전달할 데이터(객체));
	return "화면처리";
}

 


@RequestParam


BoarVO / UserVO 에 선언되지 않은 값이 전달 될 경우 (입력값 등의 경우)

  1. BoardVO 클래스를 수정. 입력하고자 한값의 name 대로 변수를 추가한 후, 그에따른 getter/setter를 추가하는 방법
  2. @RequestParam 어노테이션을 사용하는 방법

 

기본형태

public String getBoardList(BoardVO vo, BoardDAO dao, Model model){
	~~~
}


기본 value 값만 추가

 public String getBoardList
(@RequestParam(value="입력값의 name") String name,
 @RequestParam(value="다른입력값의 name") String name, 
 BoardVO vo, BoardDAO dao, Model model){
	~~~
}


파라비터에 대한 기본값을 설정

public String getBoardList
(@RequestParam(value="입력값의 name", defaultValue="222") String name,
 @RequestParam(value="다른입력값의 name", defaultValue="222") String name,
 BoardVO vo, BoardDAO dao, Model model){
	~~~
}


파라미터에 대한 필수 입력 확인

public String getBoardList
(@RequestParam(value="입력값의 name", defaultValue="222", required="true/false") String name, 
@RequestParam(value="다른입력값의 name", defaultValue="222", required="true/false") String name, 
BoardVO vo, BoardDAO dao, Model model){
	~~~
}

 


3. XML 과 annotation을 혼용해서 사용 (향후 추가될 여지가 있을 경우)

 

'IT 공부 > KH 정보교육원' 카테고리의 다른 글

myBatis  (0) 2021.06.29
프레젠테이션, 비지니스 레이어 통합  (0) 2021.06.28
Spring MVC 사용  (0) 2021.06.22
Spring MVC 구조  (0) 2021.06.22
스프링 트랙젝션(Transaction)  (0) 2021.06.21
Comments