#스프링 @RequestMapping 어노테이션 사용 방법
-URL을 Controller에 매핑해주는 역할을 합니다.
#파라미터 종류
HttpServletRequest request, response, session, OutputStream/Writer
# 파라미터 값 받아오는 방법
@RequestParam("파라미터이름")
@RequestParam(value="파라미터이름", required=false, default="1")
->required : false(없으면)
->default : 값이 없을때 기본 값
@ModelAttribute("속성이름")
@CookieValue("쿠키이름")
@CookieValue(value="쿠키이름", required=false, defaultValue="1")
@PathVariable("myValue") = 요청 URL이 /a/b/what 일 때 myValue -> what
# 리턴 종류
String : view 이름 리턴
ModelAndView : model + view
void : URL에서 뷰이름을 구함(RequestToViewNameResolver)
View :
RedirectView :
#리다이렉트 or 포워드 방식
// 리다이렉트
@RequestMapping("/callTodo")
public String todo() {
return "redirect:redirectCall";
}
// 포워드
@RequestMapping("/redirectCall")
public String redirectCall(HttpServletRequest request) {
request.setAttribute("some", "other2");
return "redirect";
}
#파라미터 받는 방식(GET)
1. request
2. Model
3. ModelAndView
1. request
// request
@RequestMapping(value = "/", method = RequestMethod.GET)
public String start(HttpServletRequest request) {
request.setAttribute("some", "request");
return "hello";
}
2. Model
// model, {여러개도 매핑가능}
@RequestMapping(value = {"/", "/start"}, method = RequestMethod.GET)
public String start(Model model) {
model.addAttribute("some", "model");
return "hello";
}
3. ModelAndView
// modelandview
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView start(ModelAndView mav) {
mav.setViewName("hello");
mav.addObject("some", "modelandview");
return mav;
}
#파라미터 받는 방식(POST)
1. 타입 변수명
@RequestMapping(value ="/formData", method = RequestMethod.POST )
// form으로 넘어온 name값과 이름이 같은 경우 매칭해서 받아온다. String inputValue
public String parameterProcess(String inputValue) {
System.out.println(inputValue);
return "redirect:start";
}
2. @RequestParam(" ") 타입 변수명
@RequestMapping(value ="/formData", method = RequestMethod.POST )
// @RequestParam("") 찾아서 -> String param에 담아 준다.
public String parameterProcess(@RequestParam("inputValue") String param) {
System.out.println(param);
return "redirect:start";
}
3. request
@RequestMapping(value ="/formData", method = RequestMethod.POST )
public String parameterProcess(HttpServletRequest request) {
System.out.println(request.getParameter("inputValue"));
return "redirect:start";
}
#객체로 받는 방식
(User 객체
private String userName;
private int userAge
)
1. 각 멤버변수 setter 사용
@RequestMapping(value ="/userInfo", method = RequestMethod.POST)
public String makeUser(String userName, int userAge) {
User user = new User();
user.setUserName(userName);
user.setUserAge(userAge);
System.out.println(user);
return "redirect:start";
}
2. @ModelAttribute 타입 변수명
@RequestMapping(value ="/userInfo", method = RequestMethod.POST)
// @ModelAttribute 각 속성에 넣어준다.
public String makeUser(@ModelAttribute User user) {
System.out.println(user);
return "redirect:start";
}
3. @ModelAttribute(" ") 타입 변수명
// Modelattiribute로 other.jsp에 속성 넘겨줌
@RequestMapping(value ="/userInfo", method = RequestMethod.POST)
public String makeUser(@ModelAttribute("otherUser") User user) {
System.out.println(user);
return "other";
}
4. 타입 변수명
@RequestMapping(value ="/userInfo", method = RequestMethod.POST)
public String makeUser(User some) {
System.out.println(some);
return "other";
}
#쿠키 값 받아오는 법
@RequestMapping(value ="/userInfo", method = RequestMethod.POST)
public String makeUser(User some, @CookieValue("what") String what) {
System.out.println(some);
return "other";
}
#타입이 void 일 경우
// void이면 view이름이 ("/empty")
@RequestMapping("/empty")
public void emptyAction() {
}
#URL의 값을 가져오는 법
/*
/a/b/what
myValue -> what
*/
// @PathVariable : 특정한 path값을 꺼내온다.
// 애매한 경우 : parameter명이 myValue인 경우(그래서 @PathVariable("") 생략 불가)
@RequestMapping("a/b/{myValue}")
public String pathVariable(@PathVariable("myValue") String myValue) {
System.out.println(myValue);
return "other";
}
'IT > Spring' 카테고리의 다른 글
[Spring] - 스프링 Spring JDBC (DBCP 커넥션 풀) 설정 하는 방법 (0) | 2020.08.19 |
---|---|
[Spring] - 스프링 Bean 등록(Annotation, XML) 하는 방법 (0) | 2020.08.13 |
[Spring] - 스프링 Maven Repository에서 mysql 라이브러리 적용 하는 법 (0) | 2020.08.13 |
[Spring] - 스프링 한글 처리 하는 방법(web.xml) (0) | 2020.08.13 |
[Spring] - 스프링 개념 정리(DI, IOC, AOP) (0) | 2020.08.13 |
댓글