@RequestParam
일반적으로 @RequestMapping 에서 Get 메서드 또는 @GetMapping 에서 사용하며
@PostMapping 에서도 @RequestParam을 사용할 때는 Form 태그 메서드가 Post 면 가능하다
// html
<td><a th:text="${vo.b_title}" th:href="@{/board/read(num=${vo.b_num})}"></a></td>
// Controller
@GetMapping("/board/read")
public String boardRead(@RequestParam("num") Integer num , Model model) throws Exception{
// http://localhost:9090/board/read?num=143
board/read(num=${vo.b_num}) 으로 했을때 ?num=143 가 붙어서 주소로 이동하였다
예 ) http://localhost:9090/board/read?num=143
예시와 같이 주소 경로 뒤에 ? 가 붙는 쿼리스트링이면 @RequestParam 으로 넘어오는 변수만큼 선언하여 값을 받을 수 있다
예)
// html
<td><a th:text="${vo.b_title}" th:href="@{/board/read(num=${vo.b_num},num=${vo.b_num})}"></a></td>
// Controller
@GetMapping("/board/read")
public String boardRead(@RequestParam("num") Integer num , @RequestParam("test1") String test1,
Model model) throws Exception{
// http://localhost:9090/board/read?num=143&num=143
@PathVariable
// html
<td><a th:text="${vo.b_title}" th:href="@{/board/read/{num}(num=${vo.b_num})}"></a></td>
// Controller
@GetMapping("/board/read/{num}")
public String boardRead(@PathVariable("num") Integer num , Model model) throws Exception{
// http://localhost:9090/board/read/143
/board/read/{num}(num=${vo.b_num}) 으로 했을 때 /143 이 붙어서 주소로 이동하였다
{num} 자리에 num=${vo.b_num} 변수 값이 들어간다
예) http://localhost:9090/board/read/143
예시와 같이 주소 경로 뒤에 /변수/변수..... 를 붙이면 @PathVariable 로 넘어오는 변수만큼 선언하여 값을 받을 수 있다
예)
// html
<td><a th:text="${vo.b_title}" th:href="@{/board/read/{num}/{num2}(num=${vo.b_num}, num2=${vo.b_num})}"></a></td>
// Controller
@GetMapping("/board/read/{num}/{num2}")
public String boardRead(@PathVariable("num") Integer num , @PathVariable("num2") Integer num2,
Model model) throws Exception{
// http://localhost:9090/board/read/143/143
@ModelAttribute
파라미터를 여러 개 받아야 하는 경우에 매번 이런 식으로 받아 줄 수는 없다
// Controller
@GetMapping("/board/create")
public String boardRead(@RequestParam("b_name") String b_name ,
@RequestParam("b_title") String b_title,
@RequestParam("b_content") String b_content,
Model model) throws Exception{
예)
// html
글 작성 페이지
<div>
<form name="form" method="post" action="/board/create">
이름 : <input name="b_name"></p>
제목 : <input name="b_title"></p>
내용 : <textarea name="b_content" rows="30" cols="50"></textarea>
<div>
<button type="submit">버튼</button>
</div>
</form>
</div>
@PostMapping("/board/create")
public String boardCreate(@ModelAttribute BoardVo vo) throws Exception{
boardService.boardCreate(vo);
return "redirect:/";
}
@ModelAttribute 로 받아준다
또는
@RequestParam 에 Map을 이용하여 받을 수 있다
@PostMapping("/board/create")
public String boardCreate(@RequestParam Map<String, Object> paramMap) throws Exception{
boardService.boardCreate(paramMap);
return "redirect:/";
}
따로 vo를 만들지 않고 form 또는 파라미터로 넘어오는 데이터를 key , value 형식으로 받아준다
물론 이렇게 하려면 service와 mapper에서도 map 으로 받아줘야 한다
'개발 > Spring' 카테고리의 다른 글
[Spring] Bootstrap 적용 웹 게시판 만들기 - 회원가입 (0) | 2023.04.24 |
---|---|
[Spring] Bootstrap SB Admin 2 설치하기 (0) | 2023.04.24 |
[SpringBoot+IntelliJ+Oracle+Thymeleaf+Paging] 웹 게시판 만들기(8) - 실행 (2) | 2023.04.20 |
[SpringBoot+IntelliJ+Oracle+Thymeleaf+Paging] 웹 게시판 만들기(7) - html 화면 (0) | 2023.04.20 |
[SpringBoot+IntelliJ+Oracle+Thymeleaf+Paging] 웹 게시판 만들기(6) - UTIL (Paging) (0) | 2023.04.20 |
댓글