2021. 12. 1. 13:46ใSpring
https://hyejin.tistory.com/275
์ฌ๊ธฐ์ ์ค์ตํ๋ ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ฒ์ํ์ ๋ํด์ XML ์๋ต์ ์ฃผ๋ RESTful ์น์๋น์ค ๋ฒ์ ์ผ๋ก ๋ง๋ค์ด๋ณผ๊ฒ์ด๋ค.
1๏ธโฃ JAXB(Java Architecture for XML Binding)
JAXB๋ Java ๊ฐ์ฒด๋ฅผ XML๋ก ๋ณํ(์ง๋ ฌํ, Marshalling)ํด์ฃผ๊ณ , XML์ Java ๊ฐ์ฒด๋ก ๋ณํ(์ญ์ง๋ ฌํ, Unmarshalling) ํด์ฃผ๋ ์์ ์ ์ข ๋ ํธ๋ฆฌํ๊ฒ ํ ์ ์๋๋ก ํด์ฃผ๋ api์ด๋ค.
- JAXB ์ฃผ์ ์ด๋ ธํ ์ด์
@XmlRootElement
: XML์ Root Element ์ด๋ฆ์ ์ ์ํ๋ค.
ํด๋์ค์์ ์ฌ์ฉํ๋ ์ด๋ ธํ ์ด์ ์ผ๋ก ํด๋น ํด๋์ค๊ฐ XML Root ๋ผ๋ ์๋ฏธ์ด๋ค.
@XmlElement
: XML์ Element ์ด๋ฆ์ ์ ์ํ๋ค.
๋ณ์์ ์ฌ์ฉํ๋ ์ด๋ ธํ ์ด์ ์ผ๋ก ํด๋น ๋ณ์๊ฐ XML Element ๋ผ๋ ์๋ฏธ์ด๋ค.
2๏ธโฃ Java ๊ฐ์ฒด๋ฅผ xml๋ก ๋ณํํ๊ธฐ ์ํ UserVOXML ํด๋์ค ์์ฑ
์ด๋ @XmlRootElement์ @XmlElement ์ด๋ ธํ ์ด์ ์ด ์๋ํ๋ ์๋ ์๋ค.
์ด๋ jdk 11์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ํธํ์ฑ ๋ฌธ์ ๋ก ์ธํด ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ญ์ ๋์๋ค๊ณ ํ๋ค.
๊ฑฐ๊ธฐ์ jaxb๊ฐ ํฌํจ๋๋์ง ๋๋ ์ด๋ ธํ ์ด์ ์ด ๋จ์ง ์์์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ฃผ์๋ค..!
https://hyejin.tistory.com/277
๊ทธ์ ๊ด๋ จ๋ ๊ฒ์๊ธ์ ์ฐธ๊ณ ํด์ pom.xml์ ์ถ๊ฐํ๋ฉด ๋๋ค!
3๏ธโฃ RestfulController ํด๋์ค์ getUserListXml() ๋ฉ์๋๋ฅผ ์์ฑ
์ด๋ฒ์ ์์ฒญ๊ฒฝ๋ก๋ users๊ฐ ์๋ usersXml์ด๋ค !
์ด๋ ๊ฒ ํ๊ณ , postman์ผ๋ก /usersXml์ ํ ์คํธํด๋ณด๋ฉด
์ด๋ ๊ฒ ๋จ๋๊ฑธ ํ์ธํ ์ ์๋ค.
4๏ธโฃ userList_Xml.html ํ๋ฉด ์์ฑ
์ด๋ฐ ํ๋ฉด์ ์ถ๋ ฅํ ์ ์๋๋ก html์ jquery๋ฅผ ์ฌ์ฉํด์ ์์ฑํ๋ค.
html ๋ถ๋ถ์๋ <table>์ <thead>๊น์ง๋ง ์์ฑํด์ฃผ๊ณ , <tbody>๋ ๋ฐ์ดํฐ ๊ฐ์์ ๋ฐ๋ผ ๋์ ์ผ๋ก row๋ฅผ ์์ฑํด์ค ๊ฒ์ด๋ค.
xml ์๋ต RESTful ์น ์๋น์ค ์์ฒญ ๋ถ๋ถ
โ dataType๊ณผ contentType์ ์ฐจ์ด
dataType์ ์๋ฒ์์ ์ด๋ค ํ์ ์ ๋ฐ์ ๊ฒ์ธ์ง๋ฅผ ์๋ฏธํ๋ค.
contentType์ ์๋ฒ๋ก ๋ณด๋ด๋ ๋ฐ์ดํฐ์ ํ์ ์ ๋งํ๋ค.
์ฌ์ฉ์ ์กฐํ ์์ฒญ ์๋ต ๋ถ๋ถ
<xml>์ ๊ฐ์ฅ๋จผ์ status๊ฐ success์ธ์ง ํ์ธํ๊ณ , ๋ง๋ค๋ฉด <userList>ํ๊ทธ๋ฅผ ์ฐพ์ ๋ฐ๋ณต๋ฌธ์ ๋๋ ค
row๋ฅผ ๋์ ์ผ๋ก ์์ฑํด์ค๋ค.
์ด๋ <userid>. <gender>, <name>, <city> ํ๊ทธ๋ฅผ find๋ก ์ฐพ์์ ์ถ๊ฐํด์ฃผ๊ณ ,
๋ง์ง๋ง์ผ๋ก <tbody>์ appendTo ํด์ฃผ๋ฉด ์ฌ์ฉ์ ๋ชฉ๋ก ์กฐํ ํ๋ฉด์ ์ถ๋ ฅํ ์ ์๋ค.