반응형
Controller의 값 jsp로 전달
jspController.java
package com.th.merorng.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/jsp")
public class jspController {
@GetMapping("/merong")
public String getMerong(Model model) {
//model은 컨트롤러에서 jsp에 보낼 데이터가 있을때
List<String> nameList = new ArrayList<>();
nameList.add("홍길동");
nameList.add("심청이");
nameList.add("이몽룡");
nameList.add("춘향이");
model.addAttribute("nameList", nameList);
return "pc";
}
}
pc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>내용 : ${nameList}</p>
</body>
</html>
- 데이터 변경 전 console 확인
jspController.java
package com.th.merorng.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/jsp")
public class jspController {
@GetMapping("/merong")
public String getMerong(Model model) {
//model은 컨트롤러에서 jsp에 보낼 데이터가 있을때
List<String> nameList = new ArrayList<>();
nameList.add("홍길동");
nameList.add("심청이");
nameList.add("이몽룡");
nameList.add("춘향이");
model.addAttribute("nameList", nameList);
return "pc";
}
}
pc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>내용 : ${nameList}</p>
<script>
//아래와 같이 쓸 시 let nArr = 홍길동; 로 인식하기에 다른 방법으로 해야함
//let nArr = ${nameList};
let nArr = `${nameList}`;
console.log("체크 : ", nArr);
</script>
</body>
</html>
=> 위와 같이 사용할 경우 데이터를 변형해야 하는 문제가 있음
- ObjectMapper 를 이용한 Json 문자열 변환
jspController.java
package com.th.merorng.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Controller
@RequestMapping("/jsp")
public class jspController {
@GetMapping("/merong")
public String getMerong(Model model) throws Exception {
//model은 컨트롤러에서 jsp에 보낼 데이터가 있을때
List<String> nameList = new ArrayList<>();
nameList.add("홍길동");
nameList.add("심청이");
nameList.add("이몽룡");
nameList.add("춘향이");
model.addAttribute("nameList", nameList);
//Jackson 라이브러리 직접 사용, 자바 객체 => JSON문자열
ObjectMapper lgObj = new ObjectMapper();
String jsonNameList = lgObj.writeValueAsString(nameList);
log.debug("확인 : {}",jsonNameList);
model.addAttribute("jsonNameList", jsonNameList);
return "pc";
}
}
pc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>내용 : ${nameList}</p>
<p>내용 : ${jsonNameList}</p>
<script>
let nArr = `${jsonNameList}`;
console.log("체크 : ", nArr);
</script>
</body>
</html>
=> 데이터가 각각으로 들어오기에 응용하거나 이용하기 편리함
반응형
'스프링 부트' 카테고리의 다른 글
[스프링 부트] 프로젝트 테스트 2 (데이터 삽입) (0) | 2024.07.11 |
---|---|
[스프링 부트] 프로젝트 생성 시 설정 및 진행1 (0) | 2024.07.11 |
[스프링 부트] lombok 파일, 로그 레벨, jsp 파일 사용을 위한 설정 (0) | 2024.07.10 |
[스프링 부트] 기본 페이지 설정 및 fetch (0) | 2024.07.10 |
[스프링 부트] sts4 설정 및 실행 방법 (0) | 2024.07.10 |