[Spring] GET 파라미터(parameter) 데이터 받기 총 정리
2019. 12. 15. 22:08
반응형
매우 간단하지만 의외로 문법적으로 까먹거나, 처음 하시는 분들은 헷갈리기 때문에 정리합니다.
Spring 4편에 나왔던 게시판 만들기 예제를 이용합니다. 참고 바랍니다.
1.GET 파라미터 받기
Client 코드(JSP)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/views/jstlHeader.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dashboard</title>
<style>
table {
width: 100%;
border: 1px solid #444444;
}
th, td {
border: 1px solid #444444;
}
</style>
</head>
<body>
<p>환영합니다 ${sessionScope.loginUser.nickname }님 <a href="/jquery/logout">로그아웃</a></p>
<p>dashboard</p>
<div>게시글 리스트</div>
<table>
<thead><tr>
<td>제목</td>
<td>조회수</td>
<td>좋아요</td>
<td>첨부파일</td>
<td>글 작성 날짜</td>
</tr></thead>
<c:forEach var="b" items="${result }">
<fmt:formatDate value="${b.create_time}" pattern="yyyy-MM-dd HH:MM:ss" var="dateFormat_cr"/>
<tr>
<td><a href="/view/boardDetail?id=${b.id }">${b.subject }</a></td>
<td>${b.views }</td>
<td>${b.likes }</td>
<td>${b.attachments }</td>
<td>${dateFormat_cr }</td>
</tr>
</c:forEach>
</table>
<div> <a href="/view/boardwrite">글 작성하기</a></div>
</body>
</html>
중점적으로 볼 것은 <a href="/view/boardDetail?id=${b.id}">제목</a> 이 부분이죠
boardDetail이라는 페이지에 id 값을 보낸 겁니다.
Server(Java)
@RequestMapping(value="view/boardDetail",method = RequestMethod.GET)
public ModelAndView boardDetail(int id) {
System.out.println(id);
boardService.viewsUpdate(id);
Board result = boardService.getBoardDetail(id);
ModelAndView mav = new ModelAndView();
mav.addObject("result",result);
return mav;
}
그냥 이름에 맞게 받아주면 됩니다.
위에 보시면 id=${b.id} 부분에서 "id="라고 보내줬습니다. 그래서 id로 받은 것입니다.
타입(Type)은 자기가 원하는 값으로 받으면 됩니다. 정수면 int, 문자열이면 String
결과
System.out.println(id); 출력 값입니다.
그렇다면 GET 파라미터를 여러 개 보낼 땐 어떻게 할까요?
2.GET 파라미터 여러 개 받기
두 번째 파라미터부턴 &(ampersand) parameter='value'포맷으로 사용하면 됩니다.
Client 코드(JSP)
<a href="/view/boardDetail?id=${b.id}&get2='stringvalue'&get3=3">제목</a>
이런 식으로 말이죠
parameter1 : id
parameter2 : get2
parameter3 : get3
Server(Java)
@RequestMapping(value="view/boardDetail",method = RequestMethod.GET)
public ModelAndView boardDetail(int id,String get2,int get3) {
System.out.println(id+","+get2+","+get3);
boardService.viewsUpdate(id);
Board result = boardService.getBoardDetail(id);
ModelAndView mav = new ModelAndView();
mav.addObject("result",result);
return mav;
}
결과
만약 받아야 하는 파라미터가 더 많다면 관리가 필요하겠죠
DTO 객체를 만들어 받을 수도 있습니다.
3.DTO(Data Transfer Object) 객체로 GET 파라미터 받기
DTO 객체
public class GET1 {
private int id;
private String get2;
private int get3;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGet2() {
return get2;
}
public void setGet2(String get2) {
this.get2 = get2;
}
public int getGet3() {
return get3;
}
public void setGet3(int get3) {
this.get3 = get3;
}
@Override
public String toString() {
return "GET1 [id=" + id + ", get2=" + get2 + ", get3=" + get3 + "]";
}
}
Server(Java)
@RequestMapping(value="view/boardDetail",method = RequestMethod.GET)
public ModelAndView boardDetail(GET1 getTest) {
System.out.println(getTest);
boardService.viewsUpdate(getTest.getId());
Board result = boardService.getBoardDetail(getTest.getId());
ModelAndView mav = new ModelAndView();
mav.addObject("result",result);
return mav;
}
결과
반응형
'Spring' 카테고리의 다른 글
[Spring] GET URL 범위 초과 문제 및 해결(feat.HTTP) (0) | 2020.03.15 |
---|---|
[Spring] 갑자기 POST가 안되는 현상(feat.XSSFilter) (0) | 2020.03.15 |
[Spring] MyBatis 데이터 HashMap으로 받기 (0) | 2019.10.31 |
[Spring] @Scheduled (0) | 2019.10.30 |
[Spring] DTO(Data Transfer Object)와 VO(Value Object) (1) | 2019.10.29 |