
๋ชจ๋ธ์ ๋ค์ํ ๋ฐ์ดํฐ ์ ํ์ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ ์ ํ์๋ HashMap, ArrayList, JavaBeans ๋ฑ์ด ํฌํจ๋ฉ๋๋ค.
๐ฆ HashMap<String, List>
@RequestMapping("sub1")
public void method1(Model model) {
var data = new HashMap<String, List>();
data.put("key1", List.of("java", "css"));
data.put("key2", List.of("react", "vue"));
data.put("key ์ผ", List.of("spring", "node"));
model.addAttribute("myList", data);
//view๋ก ํฌ์๋ฉ (/WEB-INF/view/main10/sub1.jsp)
}
<%-- java์ css --%>
<p>${myList.key1[0]}์ ${myList.key1[1]}</p>
<%-- react์ vue --%>
<p>${myList.key2[0]}์ ${myList.key2[1]}</p>
<%-- spring์ node --%>
<p>${myList["key ์ผ"][0]}์ ${myList["key ์ผ"][1]}</p>
method1()์์๋ HashMap์ ์์ฑํ์ฌ ๊ฐ ํค์ ๋ํ ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํ ํ, "myList"๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ชจ๋ธ์ ์ถ๊ฐํฉ๋๋ค.${myList[key]} ํํ๋ก ์ฐธ์กฐํ ์ ์์ต๋๋ค.๐ฆ HashMap<String, String>()
@RequestMapping("sub3")
public void method3(Model model) {
var data = new HashMap<String, String>();
data.put("ํฅ๋ฏผ", "๋ฐ๋");
data.put("๋ฏผ์ฌ", "๋ฎํจ");
data.put("๊ฐ์ธ", "ํ๋ฆฌ");
data.put("jh", "์ํ๋์์ค์ฝ");
model.addAttribute("myAttr1", data);
model.addAttribute("myAttr2", "ํฅ๋ฏผ");
model.addAttribute("myAttr3", "๋ฏผ์ฌ");
model.addAttribute("jh", "๊ฐ์ธ");
}
<%-- ๋ฐ๋ --%>
<p>${myAttr1["ํฅ๋ฏผ"]}</p>
<%-- ๋ฐ๋ --%>
<p>${myAttr1[myAttr2]}</p>
<%-- ๋ฎํจ --%>
<p>${myAttr1[myAttr3]}</p>
<p>${myAttr1["๋ฏผ์ฌ"]}</p>
<%-- ์ํ๋์์ค์ฝ --%>
<p>${myAttr1.jh}</p>
<p>${myAttr1["jh"]}</p>
<%-- ํ๋ฆฌ --%>
<p>${myAttr1[jh]}</p>
${myAttr1[myAttr2]} : "myAttr2"๋ผ๋ ์ด๋ฆ์ ๊ฐ๋ฆฌํค๋ ํค์ ํด๋นํ๋ ๊ฐ์ธ "ํฅ๋ฏผ"์ ์์ ๋์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.${myAttr1[jh]} : "jh" ์ด๋ฆ์ด ๊ฐ๋ฆฌํค๋ ํค์ ํด๋นํ๋ ๊ฐ์ธ "๊ฐ์ธ"์ ์์ ๋์(${myAttr1["๊ฐ์ธ"]})๋ฅผ ์ถ๋ ฅํฉ๋๋ค.๐ฆ ArrayList์ Map
@RequestMapping("sub4")
public void method4(Model model) {
var data = new ArrayList<Map>();
data.add(Map.of("son", "london", "lee", "paris"));
data.add(Map.of("korea", "seoul", "uk", "london"));
data.add(Map.of("๋ถ์ฐ", "ํด์ด๋"));
data.add(Map.of("์์ธ", "๊ฐ๋จ"));
model.addAttribute("list1", data);
model.addAttribute("numbers1", 1);
model.addAttribute("two", 2);
model.addAttribute("three", "3");
model.addAttribute("data1", "son");
model.addAttribute("data2", "lee");
}
<%-- seoul --%>
<p>${list1[1].korea}</p>
<p>${list1[numbers1].korea}</p>
<%--ํด์ด๋--%>
<p>${list1[2]["๋ถ์ฐ"]}</p>
<p>${list1[two]["๋ถ์ฐ"]}</p>
<%-- ๊ฐ๋จ --%>
<p>${list1[3]["์์ธ"]}</p>
<p>${list1[three]["์์ธ"]}</p>
<p>${list1["3"]["์์ธ"]}</p>
<%--Integer๊ฐ์ด ์๋๋๋ผ๋ ์ธ๋ฑ์ค 3์ ๊ฐ๋ฆฌํด--%>
<%-- london --%>
<p>${list1[0][data1]}</p>
<%-- paris --%>
<p>${list1[0][data2]}</p>
${list1["3"]["์์ธ"]}๐ฆ EL์ ์์ฑ ์ด๋ฆ
@RequestMapping("sub5")
public void method5(Model model) {
model.addAttribute("data", "๊ฐ 1");
model.addAttribute("๋ฐ์ดํ", "๊ฐ 2");
model.addAttribute("3", "์ผ");
}
<%-- ๊ฐ 1 --%>
<p>${data}</p>
<p>${requestScope.data}</p>
<p>${requestScope["data"]}</p>
<%-- ์๋ฌ <p>${๋ฐ์ดํ} --%>
<%-- ๊ฐ 1 --%>
<p>${requestScope["๋ฐ์ดํ"]}</p>
<%-- 3 ์ถ๋ ฅ --%>
<%--<p>${3}</p>--%>
<%-- ์ผ --%>
<p>${requestScope["3"]}</p>
${requestScope["๋ฐ์ดํฐ"]}์ ๊ฐ์ด ๋๊ดํธ([]) ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ํ๊ธ๋ก ๋ ์์ฑ ์ด๋ฆ์ ์ธ์ํ ์ ์์ด ํด๋น ์์ฑ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.${requestScope} : HTTP ์์ฒญ์ ๋ํ ์์ฑ(attribute)์ ์ ์ฅํ๊ณ ์์ต๋๋ค.๐ฆ ArrayList์ JavaBeans>
public class MyBean101 {
private String name;
private String address;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
@RequestMapping("sub6")
public void method6(Model model) {
var data = new ArrayList<MyBean101>();
MyBean101 e1 = new MyBean101();
MyBean101 e2 = new MyBean101();
MyBean101 e3 = new MyBean101();
e1.setName("ํฅ๋ฏผ");
e1.setAge(18);
e1.setAddress("๋ฐ๋");
e2.setName("๊ฐ์ธ");
e2.setAge(30);
e2.setAddress("ํ๋ฆฌ");
e3.setName("์ ํ");
e3.setAge(40);
e3.setAddress("์ํ๋์์ค์ฝ");
data.add(e1);
data.add(e2);
data.add(e3);
model.addAttribute("myList", data);
}
<p>
<ul>
<%--ํฅ๋ฏผ 18 ๋ฐ๋--%>
<li>${myList[0].name}</li>
<li>${myList[0].age}</li>
<li>${myList[0].address}</li>
</ul>
</p>
<p>
<ul>
<%--๊ฐ์ธ 30 ํ๋ฆฌ--%>
<li>${myList[1].name}</li>
<li>${myList[1].age}</li>
<li>${myList[1].address}</li>
</ul>
</p>
<p>
<ul>
<%--์ ํ 40 ์ํ๋์์ค์ฝ--%>
<li>${myList[2].name}</li>
<li>${myList[2].age}</li>
<li>${myList[2].address}</li>
</ul>
</p>
MyBean101 ๊ฐ์ฒด์ธ e1,e2,e3๋ฅผ ์์ฑํ์ฌ ArrayList์ ์ถ๊ฐํ๋ฉด ๋ชจ๋ธ์ "myList" ์ด๋ฆ์ผ๋ก ์ถํ๊ณ ์์ผ๋ฉฐ ๋ชจ๋ธ์ ์ถ๊ฐ๋ ๋ฐ์ดํฐ๋ ๋ทฐ์์ ${myList}๋ก ์ฐธ์กฐํ ์ ์์ต๋๋ค.${myList[0]}์ e1์ ๊ฐ๋ฆฌํค๊ณ ${myList[1]}์ e2๋ฅผ ๊ฐ๋ฆฌํค๊ณ ${myList[2]}์ e3์ ๊ฐ๋ฆฌํต๋๋ค.๐ฆ ArrayList์ JavaBeans 2
import java.util.List;
public class MyBeans104 {
private String city;
private List<String> foods;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public List<String> getFoods() {
return foods;
}
public void setFoods(List<String> foods) {
this.foods = foods;
}
}
@RequestMapping("sub9")
public void method10(Model model) {
var data = new ArrayList<MyBeans104>();
MyBeans104 e1 = new MyBeans104();
MyBeans104 e2 = new MyBeans104();
e1.setCity("ํ๊ตญ");
e1.setFoods(List.of("๊น์น์ฐ๊ฐ", "๋์งฑ์ฐ๊ฐ", "์๋๋ถ์ฐ๊ฐ"));
e2.setCity("์ผ๋ณธ");
e2.setFoods(List.of("๋๊น์ค", "์ฐ๋", "๊ท์นด์ธ "));
data.add(e1);
data.add(e2);
model.addAttribute("data", data);
}
<h3>${data[0].city}</h3>
<ul>
<li>${data[0].foods[0]}</li>
<li>${data[0].foods[1]}</li>
<li>${data[0].foods[2]}</li>
</ul>
<h3>${data[1].city}</h3>
<ul>
<li>${data[1].foods[0]}</li>
<li>${data[1].foods[1]}</li>
<li>${data[1].foods[2]}</li>
</ul>
method10()์์๋ ArrayList<MyBeans104>๋ฅผ ์์ฑํ๊ณ , ๊ฐ๊ฐ์ ๊ฐ์ฒด์ ๋์์ ์์ ๋ชฉ๋ก์ ์ค์ ํ ํ ๋ฆฌ์คํธ์ ์ถ๊ฐํฉ๋๋ค. ์ด ๋ฆฌ์คํธ๋ฅผ ๋ชจ๋ธ์ "data"๋ผ๋ ์ด๋ฆ์ผ๋ก ์ถ๊ฐํฉ๋๋ค.${data[index].city}๋ก, ์์ ๋ชฉ๋ก์ ${data[index].foods[index]}๋ก ์ฐธ์กฐ๋ฉ๋๋ค.