2-17 @RequestParam

서현우·2022년 5월 23일
0

복습

목록 보기
14/34

@RequestParam
요청의 파라미터를 연결할 매개변수에 붙이는 애너테이션
(@RequestParam(name="year" required=false) String year)

(@RequestParam String year)
(@RequestParam(name="year" required=true) String year)

@RequestParam이 required=false면 defaultValue필요
@RequestParam이 true면 예외처리(catcher메서드)

매개변수가 여러개면 MyDate date 이렇게 클래스를 만들어서 받을 수 있음.

package com.fastcampus.ch2;

import java.io.IOException;
import java.util.Calendar;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class YoilTellerMVC4 {
	@ExceptionHandler(Exception.class)
	public String catcher(Exception ex) {
		ex.printStackTrace();
		return "yoilError";
	}
	
	@RequestMapping("/getYoilMVC4")
	public String main(MyDate date, Model model) {
		
		//1. 유효성 검사
		if(!isValid(date))
			return "yoilError";
		
		//2. 요일 계산
		char yoil = getYoil(date);

		//3. 계산한 결과를 모델에 저장
		
		model.addAttribute("myDate", date);		
		model.addAttribute("yoil", yoil);

		return "yoil"; // /WEB-INF/views/yoil.jsp

	}

	private boolean isValid(MyDate date) {
		return isValid(date.getYear(), date.getMonth(), date.getDay());
	}

	private char getYoil(MyDate date) {
		// TODO Auto-generated method stub
		return getYoil(date.getYear(), date.getMonth(), date.getDay());
	}

	private boolean isValid(int year, int month, int day) {
		// TODO Auto-generated method stub
		return true;
	}

	private char getYoil(int year, int month, int day) {
		Calendar cal = Calendar.getInstance();
		cal.set(year, month-1, day);
		
		int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
		return " 일월화수목금토".charAt(dayOfWeek);
	}
}
profile
안녕하세요!!

0개의 댓글