스프링 프레임워크를 사용하다가 가끔은 AJAX 없이 첫페이지에서 데이터를 JSON으로 JSP에 넘겨주고 싶을때
서버에서 넘겨주는 ModelMap을 JSP페이지에서 어떻게 받을지에 대한 글 입니다.
ModelMap.addAttribute("result", result);
보통 이렇게 JAVA파일에 작성하여 JSP의 JSTL을 사용합니다.
그런데 가끔 자바스크립트의 데이터로 사용할 일이 생깁니다. 그럴땐 다음과 같은 방법으로 JSON을 생성합니다.
자바파일에서
JACKSON을 이용하는 방법
String json = new ObjectMapper().writeValueAsString(JsonVO); ModelMap.addAttribute("result", json );
또는
Gson을 사용하는 방법
Map<String, String> jsonMap = new HashMap<String, String>(); jsonMap.put("one", "hello"); jsonMap.put("two", "world"); Gson gson = new GsonBuilder().create(); String json = gson.toJson(jsonMap); ModelMap.addAttribute("result", json );
이런 방식으로 JSP단으로 JSON을 넘겨주고 JSON을 스크립트에서 받을때는
<script> var jsonData = ${result}; </script>
이렇게 저장 합니다.
여기서 중요한건 데이터에 따움표가 없다는 것입니다.
그래야 javascript의 eval메소드 없이 값을 할당 할 수 있습니다.
{ "one" : "hello", "two" : "world" }
jsonData 변수에 위의 JSON이 할당 됩니다.
가끔 쓰는 방법이니 기억해 두고 있으면 편리 합니다.
'JAVA' 카테고리의 다른 글
[JAVA] 패스워드 정규식 (Regex) (1) | 2017.12.05 |
---|---|
[JSP] jstl 과 el의 차이점 (0) | 2017.12.04 |
[JSTL]choose와 when, otherwise 사용법 (0) | 2017.11.23 |
[JSTL]fmt:formatNumber (0) | 2017.11.22 |
VO, Map 객체 JSON 으로 변환 (0) | 2017.11.19 |