@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);
}
}