라밑지난번 스프링때 배웠던 것을 다시 복습하는 느낌이다.
컨트롤러에서
@RequestMapping(value="/경로", method=RequestMethod.GET)
식이며 경로는 요청된 곳에서 보내는 경로이다.
예시로 index.jsp 에서
<a href='test'>test</a> 이렇게 보내면 이제 value="/test" 로 받게되는 것이다.
그런데 이제 여러개가 경로가
/sub/test1
/sub/test2 이렇게면
그 Class 위에 @RequestMapping(value="/sub") 를 적어서 한 번에 처리해줄 수가 있다.
method=RequestMethod.POST/GET 으로 GET,POST 구분을 해줄 수도 있지만
@GetMapping(value="/test")
@PostMapping(value="/test") 이렇게 따로 구분지어 줄 수도 있다.
구분할 필요가 없을 경우에 동시에 처리하는 방법도 있다.
@RequestMapping(value="/test1", method={RequestMethod.GET,RequestMethod.POST}
이제 파라미터를 건네받는 방법이다.
@GetMApping("/test1")
public String test1(HttpServletRequest request){
String data1=request.getParameter("data1");
String data3[]=request.getParameterValues("data3");
return "result";
}
이런식으로 받아오는 것이 기본적이다.
WebRequest를 이용해 받아올 수도 있다.
@GetMapping("/test1")
public String test1(WebRequest request){
위와 같다.
}
@PathVariable 를 사용하는 방법도 있다.
@GetMapping("/test4/{data1}/{data2}/{data3}")
public String test4(@PathVariable int data1,
@PathVariable int data2,
@PathVariable int data3)
이것은 restful api 식을 따른 것인데, index.jsp에서 넘겨줄 때에
<a href='test4/100/200/300'>test4</a>
경로를 100 200 300 이렇게가 아니라 이를 통해 data를 보내는 것이다.
만약 100 까지 경로를 원한다면 GetMapping 안에
"/test4/100/{data2}/{data3}" 이렇게 표현하면 된다.
그리고 이전에도 포스팅 했었는데, 내부에서 request.getParameter 으로 받아오는 것이아니라
public String test5(@RequestParam int data1,
@RequestParam int data2,
@RequestParam int [] data3)
다음과 같이 받아올 수가 있다.
그런데 이제 저기에 @RequestParam int data4 라고 적어놓았는데 보내는 곳에서 data4가 없으면 오류가 뜬다.
이럴 때에 required 를 이용하면 된다.
@RequestParam(required=false) int data4 를 적어놓으면 null 값이 들어가게 된다.
없어도 된다는 required=false를 선언해주었기 때문이다.
그리고 이름을 바꿔 쓸 수도 있는데 이때에는 value를 이용한다. 그리고 선언이 안되었을시에 default 값을 정해줄 수도 있다.
@RequestParam(value="data1", defaultValue="default") String value
이면 이제 data1 을 받아와서 value라는 이름으로 사용하고 만약 null 이면 default 라는 String 으로 쓴다는 것이다.
'공부 기록들' 카테고리의 다른 글
2020.04.16 MVC(4) ( Bean 주입 java/xml, form 태그, redirect, forward, requestScope ) (0) | 2020.04.17 |
---|---|
2020.04.14-15 MVC(3) (파라미터 받아오기2, 커맨드 객체) (0) | 2020.04.15 |
2020.04.10 static에 대해서 & MVC(1) (0) | 2020.04.10 |
2020.04.07 Spring(7) - JDBC 및 오류(ORA-28040,ORA-01017),템플릿, 커넥션풀 (0) | 2020.04.07 |
2020.04.06 Spring(6) (0) | 2020.04.06 |