Write it/JSP

JSP) EL 표기법과 , JSTL

develop_mii 2025. 8. 6. 14:00

● 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