- URL 을 컨트롤러의 메서드와 매핑할 때 사용하는 어노테이션
- 요청 주소(url) 설정, 요청 방식(GET, POST, DELETE, PATCH) 설정
- 요청방식들을 동시에 설정 가능
@RequestMapping(value = "/test7", method = {RequestMethod.GET, RequestMethod.POST})
- 요청방식별로 제공되는 어노테이션
예제 코드)
package spring.di.log;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller // controlloer연결
@RequestMapping("/login") //상위경로가 같은 데이터 경로 끼리는 묶어서 처리할 수 있음... 다만 반드시 상위경로가 같아야함 ...이 경우 /login은 안써도 된다.
public class HomeController {
1. @GetMapping("/")
@RequestMapping(value = "/", method= RequestMethod.GET)
//두가지 모두 가능
public String start()
{
return "redirect:login/form1"; //return "form"과 같음 ...
}
2. @GetMapping("/login/form1") //맵핑주소는 맨앞에 '/'를 붙여야함
public String login() {
return "form"; // return값은 jsp 경로.
}
3. @GetMapping("/login/read1")
public String process(Model model,@RequestParam(value = "myid") String id, @RequestParam String mypass) {
//보통 request나 session 내장객체에 정보를 담아 jsp에 넘겨준다. 그러나 Spring에서는 Model 별도의 객체 생성 없이(자동생성) 쓴다.
//값을 넘길때는 @RequestParam ... (value = "myid")값은 string 변수값과 같을 경우 안써줘도 됨 ...변수값을 다르게 입력하고 싶으면 적어준다.
model.addAttribute("id",id);
String msg="";
if(mypass.equals("1234"))
msg="로그인성공";
else
msg="로그인실패";
model.addAttribute("msg",msg);
return "result";
}
4. public ModelAndView read1(@RequestParam String name,
@RequestParam int age, @RequestParam(required = false) String msg, @RequestParam(defaultValue = "1") int currentPage)
/* 폼에 요소가 없으면 씀.(require = false) 라고 써주는 이유는 true가 기본값이라,
* 항목이 없어도 에러가 안나게 하려면 false입력 요소가 없는값은 무조건 다써줘야함*/
/* (defaultValue = "1") default값 출력 */
// ModelAndView은 객체를 따로 생성해서 사용
{
ModelAndView model=new ModelAndView();
//request에 저장
model.addObject("name",name);
model.addObject("age",age);
model.addObject("msg", msg);
model.addObject("currentPage", currentPage);
//포워드해준다
model.setViewName("process1");
return model;
}
5. //map방식으로 읽기
@PostMapping("/read3")
public ModelAndView read3(@RequestParam Map<String, String> map) {
ModelAndView model=new ModelAndView();
//request저장
String sang = map.get("sang");
String price = map.get("price");
String data=sang+"의 가격은"+price+"입니다";
model.addObject("data", data);
//포워드
model.setViewName("process3");
return model;
}
}
값들은 jsp에서 jstl(${..}) 문법을 이용해 출력가능하다.
https://velog.io/@bjtiger516/JSP-JSTLEL-%EC%A0%95%EB%A6%AC