Spring MVC - 파라미터 추출
2020. 9. 6. 19:20ㆍJava/Spring
반응형
지난포스트에서 MVC에서 get과 post 전송 방식에 대해 알아보았다.
Spring MVC는 get,post 데이터를 어노테이션을 통해서 받을 수 있다.
먼저 index.jsp를 통해서 get ,post 전송을 구현한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="test1?data1=100&data2=200&data3=300&data3=400">test1</a>
<form action="test2" method="post">
<input name="data1" value="100" />
<input name="data2" value="200" />
<button type="submit">submit</button>
</form>
</body>
</html>
1.HttpServletRequest
HttpServletRequest을 통해서 파라미터를 추출 가능하다. 이 방법은 jsp에서 추출하던 방식과 비슷하다.
@Controller
public class TestController {
@GetMapping("/test1")
public String test1(HttpServletRequest request) {
String data1 = request.getParameter("data1");
String data2 = request.getParameter("data2");
String data3 = request.getParameter("data3");
System.out.println(data1);
System.out.println(data2);
System.out.println(data3);
return "result";
}
}
@PostMapping("/test2")
public String test2(HttpServletRequest request) {
String data1 = request.getParameter("data1");
String data2 = request.getParameter("data2");
String data3 = request.getParameter("data3");
System.out.println(data1);
System.out.println(data2);
System.out.println(data3);
return "result";
}
2. WebRequest
WebRequest는 HttpServletRequest와 비슷하게 사용이 된다.
@Controller
public class TestController {
@GetMapping("/test1")
public String test1(WebRequest request) {
String data1 = request.getParameter("data1");
String data2 = request.getParameter("data2");
String data3 = request.getParameter("data3");
System.out.println(data1);
System.out.println(data2);
System.out.println(data3);
return "result";
}
3. @PathVariable
@PathVariable는 주소의 /로 구분을 지어서 데이터를 받는다.
<a href="test3/100/200/300">test3</a>
위와 같이 주소를 보내면 @PathVariable은 100,200,300를 주소가 아니라 순서를 통해서 자료 값으로 받게 된다.
@GetMapping("/test3/{data1}/{data2}/{data3}")
public String test1(@PathVariable String data1,
@PathVariable int data2,
@PathVariable int data3) {
System.out.println(data1);
System.out.println(data2+data3);
return "result";
}
@GetMapping("/test3/{data1}/{data2}/{data3}") 을 통해서 데이터로 들어오는 값을 지정해주고, 이름을 정해줘야 한다.
이 방식의 장점은 String외의 자료형을 줄 수 있다는 것이다.
4. @RequestParam
- @RequestParam은 지정된 변수의 이름과 파라미터의 이름이 같을 경우 값을 주입 받는다.
- value를 통해서 변수명을 설정 가능하다.
- required를 false로 설정하면 지정된 이름의 파라미터가 없을시 null이 주입된다.
- defaultValue를 통해서 값이 주입되지 않을시 기본 값을 지정 가능하다.
@GetMapping("/test4")
public String test1(@RequestParam(value = "data1") int value1,
@RequestParam int data2,
@RequestParam int data3,
@RequestParam (required = false) String data4,
@RequestParam (defaultValue = "333") int data5) {//null주입
System.out.println(value1);
System.out.println(data2 + data3);
System.out.println(data4);
System.out.println(data5);
return "result";
}
반응형
'Java > Spring' 카테고리의 다른 글
Spring MVC - ViewResolver (0) | 2020.09.08 |
---|---|
Spring MVC - 객체를 통한 파라미터 주입 (0) | 2020.09.06 |
Spring MVC - 요청방식(Get,Post) (0) | 2020.09.05 |
Spring MVC - URL Mapping (0) | 2020.09.05 |
Spring MVC - 기본세팅(3) - JAVA (0) | 2020.09.04 |