반응형

 

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>

 

결과 화면1

 

 

 

  • 데이터 변경 전 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>

 

결과 화면2

 

 

=> 위와 같이 사용할 경우 데이터를 변형해야 하는 문제가 있음

 

 

 

  • 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>

 

결과 화면4

 

 

=> 데이터가 각각으로 들어오기에 응용하거나 이용하기 편리함

 

 

반응형