● EL 표기법
1. EL 표기법 : ${ }
* 자바문과 EL표기 차이
자바문 | EL 표기 이용 |
<%= 10+5 %> | ${10+5} |
<% String str = "korea"; %> <h1>내가 태어난 국가는 <%= str %> 입니다.</h1> |
<% String str = "korea"; request.setAttribute("kor", str); %> <h1>내가 태어난 국가는 ${kor} 입니다.</h1> |
# usebean 이용 자바문
<jsp:useBean id="member" class="com.kmii.dto.MemberDto" />
...
<body>
<jsp:setProperty property="name" name="stu1" value="홍길동"/>
<jsp:setProperty property="age" name="stu1" value="12"/>
<jsp:setProperty property="hakbun" name="stu1" value="12345"/>
<h2>학생 정보</h2>
<hr>
이름 : <jsp:getProperty property="name" name="stu1"/><br>
나이 : <jsp:getProperty property="age" name="stu1"/><br>
학번 : <jsp:getProperty property="hakbun" name="stu1"/><br>
</body>
# usebean 이용 EL표기 사용
getter 사용하지 않고 더 깔끔하게 가능
<jsp:useBean id="member" class="com.kmii.dto.MemberDto" />
...
<body>
<jsp:setProperty property="id" name="member" value="tiger"/>
<jsp:setProperty property="pw" name="member" value="12345"/>
<jsp:setProperty property="name" name="member" value="홍길동"/>
<jsp:setProperty property="age" name="member" value="17"/>
<h2> 회원 정보 </h2>
<hr>
<ul>
<li>아이디 : ${member.id}</li>
<li>비밀번호 : ${member.pw}</li>
<li>이름 : ${member.name}</li>
<li>나이 : ${member.age}</li>
</ul>
</body>
● JSTL
- 외부 라이브러리 설치해서 자바코드 쓰지않고 if문 for문 표현 가능
- 더 간결하게 사용 할 수 있다
- 사용하는 파일에 위쪽에 <%@ taglib prefix="c" uri="jakarta.tags.core" %> 선언해주기
(보통 <%@ taglib prefix="c" uri="jakarta.tags.core" %> , <%@ taglib prefix="fn" uri="jakarta.tags.functions" %> 2개 가장 많이 사용)
1. 자바문과 JSTL 비교 예제
자바문 | JSTL이용 |
<% if(10 >5){ %> <h1>10은 5보다 크다</h1> <% } %> |
<c:if test="${10>5}"> <h1>10은 5보다 크다</h1> </c:if> |
2. JSTL 이용한 if else 문
<%@ taglib prefix="c" uri="jakarta.tags.core" %>
...
<c:choose>
<c:when test="${10>5}">
<h1>10은 5보다 크다</h1>
</c:when>ㄴ
<c:otherwise> <!-- else 와 같은 기능 -->
<h1>10은 5보다 작다</h1>
</c:otherwise>
</c:choose>
3. JSTL 이용한 if else if 문
<%@ taglib prefix="c" uri="jakarta.tags.core" %>
...
<c:set var="scr" value="85" />
<c:choose>
<c:when test="${scr>=90}">
<h2>수</h2>
</c:when>
<c:when test="${scr>=80}">
<h2>우</h2>
</c:when>
<c:when test="${scr>=70}">
<h2>미</h2>
</c:when>
<c:when test="${scr>=60}">
<h2>양</h2>
</c:when>
<c:otherwise>
<h1>가</h1>
</c:otherwise>
</c:choose>
4. JSTL 이용한 for 문
# 예제1 (일반 for문)
<%@ taglib prefix="c" uri="jakarta.tags.core" %>
...
<c:forEach var="i" begin="0" end="9">
<h1>${i}</h1>
</c:forEach>
*<c:forEach step="n"> 선언하여 넣은 숫자(n)만큼 수가 커지게 할 수 있다
#예제2 (배열 for문)
<%@ taglib prefix="c" uri="jakarta.tags.core" %>
...
<%
String[] strs = {"A", "B", "C"};
request.setAttribute("strs", strs); // 아래에서 배열 인식위해 써줘야한다
%>
<ul>
<c:forEach var="str" items="${strs}" >
<li><h2>${str}</h2></li>
</c:forEach>
</ul>
5. JSTL Function 라이브러리를 이용한 다양한 예제
* 공통 선언
<%@ taglib prefix="c" uri="jakarta.tags.core" %> <%@ taglib prefix="fn" uri="jakarta.tags.functions" %> |
① 문자열 길이 (문자열 , 배열)
<c:set var="str" value="korea"/>
<h2>문자열의 길이 : ${fn:length(str)}</h2>
<c:set var="strArr" value= "${['kor','jap','chin']}" />
<h2>문자열의 길이 : ${fn:length(strArr)}</h2>
② 영어 대문자/소문자 변환
<%
String str = "korea";
%>
<h2>대문자로 변환 : ${fn:toUpperCase(str)} </h2>
<h2>소문자로 변환 : ${fn:toLowerCase(str)} </h2>
③ 문자열 추출
<c:set var="str2" value="I love you!!"/>
<h2>앞 4글자 추출 : ${fn:substring(str2,0,4)} </h2> // i lo
<h2>앞 4글자 추출 : ${fn:substring(str2,2,6)} </h2> // love
<h2>뒤 5글자 추출 : ${fn:substring(str2,7,12)} </h2> // you!!
#활용 예제
(게시판 글 제목이 30자 이상일때 30자 이상은 ...표시 )
<tr>
<td>
<c:choose>
<c:when test="${fn:length(boardDto.btitle)>30}">
<a href="#">${fn:substring(boardDto.btitle,0,30)}...</a>
</c:when>
<c:otherwise>
<a href="#">${boardDto.btitle}</a>
</c:otherwise>
</c:choose>
</td>
'Write it > JSP' 카테고리의 다른 글
JSP) 예외 처리 (2) | 2025.08.07 |
---|