에러나는 방식은 3가지가 있다
진짜 에러가 빡!! 나거나
그냥 출력이 안되거나
0이 출력 되거나
에러들을 하나 씩 살펴보자
1.+를 숫자형식이 아닌 문자열에 적용 시(에러 빡!)
<ul class="list-unstyled">
<li>\${'100'+100 }[정상] : ${'100'+100 } </li>
<li>\${'백'+100 }[500에러] : ${'백'+100 } </li>
<li>\${'HELLO'+'HI' }[500에러] : ${'HELLO'+'HI'} </li>
</ul>
2. .인덱스번호 요런 형식으로 배열이나 리스트계열 컬렉션 요소에 접근 시(에러 빡!)
<%
String[] mountains={"설악산","소백산","비슬산","덕유산"}; //mountains[0]
List collection = Arrays.asList(mountains);
%>
<c:set var="mountains" value="<%=mountains %>"/>
<c:set var="collection" value="<%=collection %>"/>
\${mountains } : ${mountains } <br/>
\${collection } : ${collection } <br/>
<ul class="list-unstyled">
<li>\${mountains[0]}[정상] : ${mountains[0] } <br/></li>
<li>\${collection[0]}[정상] : ${collection[0] } <br/></li>
<!-- getter규칙따른다고 . 하고 달랑 번호만 썼다간 에러 -->
<li>\${mountains.0}[에러] : \${mountains.0 } <br/></li>
<li>\${collection.0}[에러] : \${collection.0 } <br/></li>
</ul>
3.배열이나 리스트계열 컬렉션에 인덱스를 벗어난경우(에러는 안나지만 출력이 안됨)
<h4>배열이나 리스트계열 컬렉션에 인덱스를 벗어난경우(에러는 안나지만 출력이 안됨)</h4>
<ul class="list-unstyled">
<li>\${mountains[100]} : ${mountains[100] } <br/></li>
<li>\${mountains[100]==null} : ${mountains[100]==null}<br/></li>
<li>\${collection[100]}:${collection[100]} <br/></li>
<li>\${collection[100]==null}:${collection[100]==null}<br/></li>
</ul>
4.없는 속성이거나 속성은 존재하지만 게터가 없는경우(에러-자바빈의 경우)
<h4>없는 속성이거나 속성은 존재하지만 게터가 없는경우(에러-자바빈의 경우)</h4>
<c:set var="member" value='<%= new MemberDTO("KIM","1234","김길동","20")%>' />
<ul class="list-unstyled">
<li>없는 속성 접근[propertyNotFoundE 에러] : \${member.addr} </li>
<li>속성은 존재,게터가 없는경우(memberDAO의 getter를 주석처리하고 시도해야 에러 남) : ${member.name}
<li>EL변수명이 틀린경우(에러는 아니나 출력이안됨) : \${membar.id }</li>
</ul>
5.el 내장객체의 없는 속성으로 접근 시
: EL의 내장객체 중 사용자가 정의한 속성에 접근하는
내장객체(xxxScope계열/param계열등) 및 맵 컬렉션인 경우,
존재하지 않은 속성이나 키값으로 접근시 null임으로 에러는 안나고 출력만 안됨
<c:set var="myrequest" value="리퀘스트영역" scope="request"/>
<%
Map map = new HashMap();
map.put("mymap","맵 컬렉션");
%>
<c:set var="map" value="<%=map %>" />
<ul class="list-unstyled">
<li>\${requestScope.myrequest} : ${requestScope.myrequest}</li>
<li>\${requestScope.yourrequest} : ${requestScope.yourrequest}</li>
<li>\${map.mymap} : ${map.mymap}</li>
<li>\${map.yourmap} : ${map.yourmap}</li>
<li>\${pageContext.noproperty} [.propertyNotFoundE 에러] : \${pageContext.noproperty} </li>
</ul>
6. 0으로 나누기/ 임의의 변수에 접근
<h4>숫자를 0으로 나누면 Infinity</h4>
\${100/0} : ${100/0}
<h4>임의의 변수로 .을 통해서 접근 시-에러no, 출력no</h4>
\${myvar } : ${myvar }<br/>
\${myvar==null } : ${myvar==null }<br/>
\${myvar.age } : ${myvar.age }<br/>
'학원 > JSP' 카테고리의 다른 글
11/29 53-1 [JSP] JSTL (SetTag) (0) | 2022.11.29 |
---|---|
11/28 52-6 [JSP] EL에서 나만의 태그 라이브러리 만들기 (0) | 2022.11.29 |
11/28 52-4 [JSP] EL의 기타 내장객체 (0) | 2022.11.28 |
11/28 52-4 [JSP] EL의 ...Scope계열 내장객체 (0) | 2022.11.28 |
11/28 52-3 [JSP] Param 내장객체 예제 (1) | 2022.11.28 |