[개발] @Controller, @RequestMapping
필기자
2022-09-07 11:31
7,529
0
본문
프로젝트 구조
dto/UserDto.java
public class UserDto {
private String name;
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "UserDto{" +
"name='" + name + '\'' +
", phone='" + phone + '\'' +
'}';
}
}
controller/DefaultReqController.java
@Controller
@RequestMapping("/req")
public class DefaultReqController {
//http://localhost:8080/req/html
@RequestMapping(value = "/html", method = RequestMethod.GET)
public String html() {
return "get/index";
}
//http://localhost:8080/req/html/안녕하세요
@RequestMapping(value = "/html/{msg}", method = RequestMethod.GET)
public String html(@PathVariable String msg, Model m) {
m.addAttribute("msg", msg);
return "get/index";
}
//http://localhost:8080/req/txt?msg=안녕하세요
@RequestMapping(value = "/txt", method = RequestMethod.GET)
@ResponseBody
public String html(@RequestParam(value="msg", required=false) String msg) {
return msg;
}
//http://localhost:8080/req/json
@RequestMapping(value = "/json", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<Object> html(Model m) {
m.addAttribute("model","모델값 json");
return new ResponseEntity<>(m, HttpStatus.OK);
}
//http://localhost:8080/post.html -> http://localhost:8080/req/dto
// POST : name=홍길동&phone=01011111111 -> userDto
@RequestMapping(value = "/dto", method = RequestMethod.POST)
@ResponseBody
public UserDto html(UserDto userDto) {
return userDto;
}
//http://localhost:8080/post.html -> http://localhost:8080/req/dto-model
// POST : name=홍길동&phone=01011111111 -> userDto
@RequestMapping(value = "/dto-model", method = RequestMethod.POST)
public String html(UserDto userDto, Model m) {
m.addAttribute("dto", userDto);
return "post/index";
}
}
src/main/resources/static/post.html
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>@RequestMapping 테스트</title>
</head>
<body>
<!-- @PostMapping -->
<div>
<h4>http://localhost:8080/post/html</h4>
<form action="/post/html" method="post">
<table style="border: 1px solid #383434;">
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">전송</button>
</td>
</tr>
</table>
</form>
</div>
<div>
<h4>http://localhost:8080/post/html/{msg}</h4>
<form action="/post/html/안녕하세요/" method="post">
<table style="border: 1px solid #383434;">
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">전송</button>
</td>
</tr>
</table>
</form>
</div>
<div>
<h4>http://localhost:8080/post/txt</h4>
<form action="/post/txt?msg=홍길동" method="post">
<table style="border: 1px solid #383434;">
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">전송</button>
</td>
</tr>
</table>
</form>
</div>
<div>
<h4>http://localhost:8080/post/json</h4>
<form action="/post/json" method="post">
<table style="border: 1px solid #383434;">
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">전송</button>
</td>
</tr>
</table>
</form>
</div>
<div>
<h4>http://localhost:8080/post/json</h4>
<form action="/post/json" method="post">
<table style="border: 1px solid #383434;">
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">전송</button>
</td>
</tr>
</table>
</form>
</div>
<div>
<h4>http://localhost:8080/post/dto</h4>
<form action="/post/dto" method="post">
<table style="border: 1px solid #383434;">
<tr>
<td>이름</td>
<td><input type="text" name="name" value="홍길동" /></td>
</tr>
<tr>
<td>핸드폰</td>
<td><input type="text" name="phone" value="010-8888-88888" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">전송</button>
</td>
</tr>
</table>
</form>
</div>
<div>
<h4>http://localhost:8080/post/dto-model</h4>
<form action="/post/dto-model" method="post">
<table style="border: 1px solid #383434;">
<tr>
<td>이름</td>
<td><input type="text" name="name" value="홍길동" /></td>
</tr>
<tr>
<td>핸드폰</td>
<td><input type="text" name="phone" value="010-8888-88888" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">전송</button>
</td>
</tr>
</table>
</form>
</div>
<!-- @RequestMapping RequestMethod.POST -->
<div>
<h4>http://localhost:8080/req/dto</h4>
<form action="/req/dto" method="post">
<table style="border: 1px solid #383434;">
<tr>
<td>이름</td>
<td><input type="text" name="name" value="홍길동" /></td>
</tr>
<tr>
<td>핸드폰</td>
<td><input type="text" name="phone" value="010-8888-88888" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">전송</button>
</td>
</tr>
</table>
</form>
</div>
<div>
<h4>http://localhost:8080/req/dto-model</h4>
<form action="/req/dto-model" method="post">
<table style="border: 1px solid #383434;">
<tr>
<td>이름</td>
<td><input type="text" name="name" value="홍길동" /></td>
</tr>
<tr>
<td>핸드폰</td>
<td><input type="text" name="phone" value="010-8888-88888" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">전송</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
src/main/resources/templates/get/index.html
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>@GetMapping 테스트</title>
</head>
<body>
<h1 th:if="${msg != null}" th:text="'model 값 : '+${msg}">안녕하세요.</h1>
<h1 th:unless="${msg != null}" th:text="'model 값 없음'">안녕하세요.</h1>
<div th:if="${dto}">
<h1 th:if="${dto.name != null}" th:text="'dto 값 : '+${dto.toString()}">안녕하세요.</h1>
<h1 th:unless="${dto.name != null}" th:text="'dto 값 없음'">안녕하세요.</h1>
</div>
</body>
</html>
src/main/resources/templates/post/index.html
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>@PostMapping 테스트</title>
</head>
<body>
<h1 th:if="${msg != null}" th:text="'model 값 : '+${msg}">안녕하세요.</h1>
<h1 th:unless="${msg != null}" th:text="'model 값 없음'">안녕하세요.</h1>
<div th:if="${dto}">
<h1 th:if="${dto.name != null}" th:text="'dto 값 : '+${dto.toString()}">안녕하세요.</h1>
<h1 th:unless="${dto.name != null}" th:text="'dto 값 없음'">안녕하세요.</h1>
</div>
</body>
</html>
댓글목록0