반응형

매우 간단하지만 의외로 문법적으로 까먹거나, 처음 하시는 분들은 헷갈리기 때문에 정리합니다.

 

Spring 4편에 나왔던 게시판 만들기 예제를 이용합니다. 참고 바랍니다.

 

[Spring] 프로젝트 커뮤니티,블로그 만들기(#4)-게시판 작성,수정,삭제(CRUD) 만들기

안녕하세요 무작정 일단 따라 해 보는 Spring 커뮤니티 만들기 4탄 시작합니다. 환경 Eclipse 2019-9 Jee JDK 1.8_231 Apache Tomcat 8.5.47 MariaDB 10.4.10 MyBatis 3.2.2 + JSTL 1.2 + jackson 2.9.4 오늘의 할..

java119.tistory.com

 

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;
	}

 

결과


 

반응형

+ Recent posts