1) 메이븐 프로젝트 변환
2) Java기본 세팅
3) 추가 세팅
[TestController.java]
@Controller
public class TestController {
@GetMapping("test1")
public String test1(HttpServletRequest request) {
String data1 = request.getParameter("data1");
String data2 = request.getParameter("data2");
String[] data3 = request.getParameterValues("data3");
System.out.println("data1 : " + data1);
System.out.println("data2 : " + data2);
for (String str1 : data3) {
System.out.println("data3 : " + str1);
}
return "result";
}
@PostMapping("test2")
public String test2(HttpServletRequest request) {
String data1 = request.getParameter("data1");
String data2 = request.getParameter("data2");
// 같은 이름의 파라메터들은 배열로 받는다.
String [] data3 = request.getParameterValues("data3");
System.out.println("data1 : " + data1);
System.out.println("data2 : " + data2);
if(data3 != null) {
for(String str1 : data3) {
System.out.println("data3 : " + str1);
}
}
return "result";
}
}
[index.jsp]
<%@ 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 get</a>
<hr>
<form action='test2' method='post'>
data1 : <input type='text' name='data1' /><br />
data2 : <input type='text' name='data2' /><br />
data3 :
<input type='checkbox' name='data3' value='100' />data3 100
<input type='checkbox' name='data3' value='200' />data3 200
<br />
<button type='submit'>test2 post</button>
</form>
</body>
</html>
test1_get 클릭시
tes_post 클릭시
- 데이터가 요청 주소에 있을 경우 값을 주입 받을 수 있는 어노테이션
- Restful API 서버 프로그랭밍 시 많이 사용하는 방식
[TestController.java]
@GetMapping("/test3/{data1}/{data2}/{data3}")
public String test4(@PathVariable int data1,
@PathVariable int data2,
@PathVariable int data3) {
System.out.println("data1 : " + data1);
System.out.println("data2 : " + data2);
System.out.println("data3 : " + data3);
int add = data1 + data2 + data3;
System.out.println("add : " + add);
return "result";
}
[index.jsp]
<hr />
<a href='test3/100/200/300'>test3</a>
<br />
View
test3 클릭 시 결과
- 파라미터 데이터를 직접 주입 받을 수 있다.
- 지정된 변수의 이름과 파라미터의 이름이 같을 경우 값을 주입 받는다.
- 가능한 경우 형 변환도 처리해준다.
- value : 파라미터의 이름과 변수의 이름이 다를 경우 파라미터 이름을 지정한다.
- required : false를 설정하면 지정된 이름의 파라미터가 없을 경우 null이 주입된다.
[TestController.java]
@GetMapping("/test4")
public String test4(@RequestParam int data1,
@RequestParam int data2,
@RequestParam int [] data3) {
System.out.println("data1 : " + data1);
System.out.println("data2 : " + data2);
for(int a1 : data3) {
System.out.println("data3 : " + a1);
}
return "result";
}
[index.jsp]
<hr/>
<a href='test4?data1=100&data2=200&data3=300&data3=400'>test4</a><br/>
View
test4 클릭 시 결과
-----수정필요!!-------
<a href='test4?data11=100&data2=200&data3=300&data3=400'>test4</a>
일 때 @RequestParam(required =false) int data1 일 경우