Spring Boot/스프링부트 예제
URL 매개변수를 ArrayList 형태로 View에 전달
2주녘
2023. 10. 5. 12:48
반응형
💡 ArrayList 형태의 View에서의 출력
📂 MulitParamController.java
@GetMapping("/hello-array")
public String setHelloArray(Model model,
@RequestParam(defaultValue = "") String name,
@RequestParam(defaultValue = "") String id)
{
List<String> list = new ArrayList<>();
list.add(name);
list.add(id);
model.addAttribute("list",list);
return "exam03/hello_array.jsp";
}
setHelloArray 메서드 내에서 문자열 형태의 ArrayList를 생성합니다.
그리고 .add() 를 사용하여 RequestParam의 변수를 넣어줍니다.
📂 hello_array.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%--TODO : JSTL 표현식 사용을 위한 import--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<%-- TODO 부트스트랩 CSS CDN --%>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>
<body>
<div class="container">
<h2>예제 2) URL 매개변수를 ArrayList 로 View에 전달</h2>
<p>${list}</p>
<table class="table">
<thead>
<tr>
<th scope="col">id</th>
<th scope="col">name</th>
</tr>
</thead>
<tbody>
<tr>
<%-- TODO: JSP 반복문 : jstl 표현식 사용 --%>
<%-- <c:forEach var="일반변수" items="${배열}"> --%>
<c:forEach var="data" items="${list}">
<td>${data}</td>
</c:forEach>
</tr>
</tbody>
</table>
</div>
</body>
</html>
내용을 깔끔하게 보이게 하기 위해 부트스트랩의 테이블 소스를 사용하였습니다.
JSP에서의 반복문은 JSTL 표현식을 사용합니다.
<c:forEach var="변수명" items="${배열}">
${변수명}
</c:forEach>
📌 결과
📖 연습문제
// TODO: 연습 2) 연습 1에서 작성한 dno, dname, loc 를 ArrayList 담아서 jsp 전달하세요
// 화면에 출력시 부트스트랩 테이블을 이용해서 출력하세요
// url : /example02
// jsp : exam03/example02.jsp
// url 테스트 : http://localhost:8000/exam03/example02?dno=10&dname=Accounting&loc=NewYork
// 결과 : 테이블 형태로
// 부서번호 : 10
// 부서명 : Accounting
// 위치 : NewYork
📂 MulitParamController.java
@GetMapping("/example02")
public String setHelloArray2(Model model,
@RequestParam(defaultValue = "")int dno,
@RequestParam(defaultValue = "")String dname,
@RequestParam(defaultValue = "")String loc
)
{
List<String> list = new ArrayList<>();
list.add(String.valueOf(dno));
list.add(dname);
list.add(loc);
model.addAttribute("list",list);
return "exam03/example02.jsp";
}
📂 example02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%--TODO : JSTL 표현식 사용을 위한 import--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<%-- TODO 부트스트랩 CSS CDN --%>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>
<body>
<div class="container">
<h2> 연습1) URL 매개변수를 ArrayList 로 View에 전달</h2>
<p>${list}</p>
<table class="table">
<thead>
<tr>
<th scope="col">부서번호</th>
<th scope="col">부서명</th>
<th scope="col">위치</th>
</tr>
</thead>
<tbody>
<tr>
<%-- TODO: JSP 반복문 : jstl 표현식 사용 --%>
<%-- <c:forEach var="일반변수" items="${배열}"> --%>
<c:forEach var="data" items="${list}">
<td>${data}</td>
</c:forEach>
</tr>
</tbody>
</table>
</div>
</body>
</html>
📌 실행결과
// TODO: 연습 3) 아래 결과를 ArrayList 담아서 jsp 전달하세요
// 화면에 출력시 부트스트랩 테이블을 이용해서 출력하세요
// url : /example03
// jsp : exam03/example03.jsp
// url 테스트 : http://localhost:8000/exam03/example03?eno=7788&ename=Scott&salary=3000&job=Manager
// 결과 : 테이블 형태로
// 사원번호 : 7788
// 사원명 : Scott
// 월급 : 3000
// 직위 : Manager
📂 MulitParamController.java
@GetMapping("/example03")
public String setHelloArray3(Model model,
@RequestParam(defaultValue = "")int eno,
@RequestParam(defaultValue = "")String ename,
@RequestParam(defaultValue = "")int salary,
@RequestParam(defaultValue = "")String job
)
{
List<String> list = new ArrayList<>();
list.add(String.valueOf(eno));
list.add(ename);
list.add(String.valueOf(salary));
list.add(job);
model.addAttribute("list",list);
return "exam03/example03.jsp";
}
📂 example03.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%--TODO : JSTL 표현식 사용을 위한 import--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<%-- TODO 부트스트랩 CSS CDN --%>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>
<body>
<div class="container">
<h2> 연습3) URL 매개변수를 ArrayList 로 View에 전달</h2>
<p>${list}</p>
<table class="table">
<thead>
<tr>
<th scope="col">eno</th>
<th scope="col">ename</th>
<th scope="col">salary</th>
<th scope="col">job</th>
</tr>
</thead>
<tbody>
<tr>
<%-- TODO: JSP 반복문 : jstl 표현식 사용 --%>
<%-- <c:forEach var="일반변수" items="${배열}"> --%>
<c:forEach var="data" items="${list}">
<td>${data}</td>
</c:forEach>
</tr>
</tbody>
</table>
</div>
</body>
</html>
📌 실행결과
반응형