- 기존에 java코드에서는 request 객체를 이용하여 값을 넘기고 받을 때에 다음과 같은 코드를 써야만 했다.
- String name = (String)request.getAttribute("name");
- ArrayList arr = (ArrayList)request.getAttribute("data");
- 하지만 EL의 requestScope를 사용하면 다른 장점이 있다.
- null값이 무시되어 null point exception 이 생기지 않으며
- 위와같이 String 이나 ArrayList로 형변환 시켜줄 필요가 없다.
- 에러가 나도 무시해버리므로 사용이 용이하다.
- ArrayList
1. 아래와 같이 el_test.jsp 파일을 생성하여 "name"에 "choi solyi"값을 넣어주고, ArrayList를 생성하여 취미값들을 넣어준다. 그리고 arr를 "data" 로 묶어주고 forward를 이용해 el_test.jsp로 넘겨준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<body>
<%
request.setAttribute("name", "choi solyi");
ArrayList<String> arr = new ArrayList<>();
arr.add("게임");
arr.add("음악감상");
arr.add("독서");
request.setAttribute("data", arr);
%>
<jsp:forward page="el_test.jsp"></jsp:forward>
</body>
|
2. forward로 넘겨준 el_test.jsp 파일을 생성하여 값을 받아준다. requestScope.data[0] ... 을 이용해 받아줄수있다.
1
2
3
4
5
|
이름 ${requestScope.name} <br>
취미1 : ${requestScope.data[0]} <br>
취미2 : ${requestScope.data[1]} <br>
취미3 : ${requestScope.data[2]} <br>
취미4 : ${requestScope.data[3]} <br>
|
위에 작성한 내용은 3가지 이지만 출력은 4가지를 하였다.
일반 java코드였다면 값이 존재하지않아서 에러가 나는것이 정상이지만,
el코드는 무시하고 취미4 : 만 출력이 된다.
- HashMap
1. jsp 파일을 생성하여 String과 studentDTO를 저장할수있는 HashMap 객체를 생성하여 값을 넣어준다.
(미리 DTO 파일에서 생성자, 게터세터, toString 을 생성한다.)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<body>
<%
HashMap<String, studentDTO> person = new HashMap<>();
person.put("a1", new studentDTO(1, "choi", 20));
person.put("a2", new studentDTO(1, "eom", 33));
person.put("a3", new studentDTO(1, "su", 43));
person.put("a4", new studentDTO(1, "biin", 53));
person.put("a5", new studentDTO(1, "babo", 63));
request.setAttribute("people", person);
%>
<jsp:forward page="hashmap_result.jsp"></jsp:forward>
</body>
|
2. hashmap_result.jsp 파일을 생성하여 다음과 같이 값을 받을 수 있다.
1
2
3
4
5
6
7
8
9
10
|
<body>
${requestScope.people.a1}<br>
${requestScope.people["a2"]}<br>
${requestScope.people.a3}<br>
${requestScope.people.a1.no}<br> <!-- getNo 를 호출 -->
${requestScope.people.a2.name}<br>
${requestScope.people.a3.age}<br>
</body>
|
- 위 세줄은 toString 대로 출력되고
- 아래 세줄은다음과 같은 내용이 출력된다
- key : a1 / value : no
- key : a2 / value : name
- key : a3 / value : age
반응형
'2019 > EL JSTL' 카테고리의 다른 글
JSTL 사용방법 (0) | 2020.01.08 |
---|---|
EL sessionScope (ArrayList) (0) | 2020.01.08 |
EL parameter 값 가져오기 (0) | 2020.01.08 |
객체 Scope (0) | 2020.01.08 |
EL 연산자 (0) | 2020.01.08 |