Spring - Model / ModelAndView / form 태그 내 데이터 받기

S.Sun·2024년 4월 4일

스프링

목록 보기
5/17

질문 내용

  1. 스프링에서 컨트롤러에서 view 에 데이터를 전달 하는 방법 2가지를 설명하시오.
  2. 아래의 객체를 설명하시오.
  • Model
  • ModelAndView
  1. 스프링에서 form 태그를 통해서 넘어온 값들을 스프링으로 받아내는 방법은?

개인 작성

  • Model 타입의 객체를 매개변수로 받고, 해당 객체에 속성을 추가함.
    - Model 객체를 파라미터로 받음
    - Model 객체에 데이터를 담음
    - 컨트롤러에서 전달 받은 Model객체의 속성을 이용함.

  • ModelAndView 타입의 객체를 매개변수로 받거나 새로 선언한 뒤, 해당 객체에 데이터를 추가한 뒤 뷰 이름을 설정하고 해당 객체를 리턴
    - ModelAndView 객체 생성
    - Model 객체에 데이터를 담음
    - 뷰이름 설정

  • Model
    - 컨트롤러에서 뷰로 데이터를 전달할 때 사용하는 객체
    - 컨트롤러에서 처리한 데이터를 뷰로 전달할 때 사용
	@RequestMapping(value = "/content")
	public void content(Model model) {
		System.out.println("content()..");
		model.addAttribute("id", 30);
		model.addAttribute("age", 30); 
		model.addAttribute("name", "홍길동"); 
	}
  • ModelAndView
    - 모델과 뷰를 함께 전달하는 객체
    - 모델 데이터와 뷰 정보를 하나의 객체에 담아 반환
	@RequestMapping("/reply")
	public ModelAndView reply() {
		System.out.println("reply()..");
		ModelAndView mv = new ModelAndView();
		mv.addObject("id",30);
		mv.setViewName("board/reply");
		
		return mv;			
	}
  1. 오늘은 form 태그를 통해서 넘어온 값들을 스프링으로 받아내는 방법 2가지를 배웠다.
    1) HttpServletRequest 객체 사용
    - HttpServletRequest 객체를 직접 사용하여 요청 파라미터를 받아올 수 있음.
    - 형변환 직접 해야 함.
    - 다수의 파라미터들이 있는 경우에는 코드가 복잡해질 수 있음.
    2) @RequestParam annotation 사용
    - 컨트롤러 메서드의 파라미터에 @RequestParam 어노테이션을 사용
    -> 각 요청 파라미터를 직접 매핑하는 것이라고 함.

1) 예시

	@GetMapping("/circle")
	public String circle(HttpServletRequest request, Model model) {		
		System.out.println("circle()..");
		double radius = Double.valueOf(request.getParameter("radius"));
        Circle circle = new Circle(radius);		
		model.addAttribute("circle", circle);
		return "/shape/circle";
	}

2) 예시

	@RequestMapping("/circle")
	public String circle(@RequestParam("radius") double radius, Model model) {		
		System.out.println("circle()..");
		Circle circle = new Circle(radius);
		model.addAttribute("circle", circle);
		return "/shape/circle";
	}
profile
두리둥둥

0개의 댓글