JSP, JSTL과 EL 사용 팁

infoqoch·2021년 2월 25일
0

Servlet(JSP)

목록 보기
8/9

1. 비교연산자의 NULL과 ' ' 비교

form.jsp

<tr>
  <td>이름</td>	
  <td><input type="text" name="name" value="홍길동"></td>
</tr>

<tr>
  <td>성별</td>	
  <td>
    <input type="radio" name="gender" value=""><input type="radio" name="gender" value=""></td>
</tr>	
view.jsp

<br>이름 :
<c:choose>
  <c:when test="${param.name != ''}"> ${param.name }</c:when>
  <c:when test="${param.name == '' }">이름없음</c:when>
</c:choose>

<br>성별 : 
<c:choose>
  <c:when test="${param.gender != null}">${param.gender}</c:when>
  <c:otherwise>성별없음</c:otherwise>
</c:choose>
  • JSTL에서 String을 비교할 때는 equals()를 사용하지 않는다. 비교연산자 ==을 사용한다.
  • JSTL에서 존재하지 않는 변수는 null이다. 존재하지만 값이 없는 변수는 ''으로 처리한다.

2. 반복문 / 조건문

// 시나리오 : form을 통해 post 방식으로 fruit 배열을 받았다. {"사과", "포도"}

<hr>
<c:forEach begin="0" var ="i" end="${fn:length(paramValues.fruit)-1}" step="1" varStatus="status">
	${paramValues.fruit[i]}
	<c:if test="${i!=status.end}">,</c:if> 
</c:forEach> // 사과, 포도

<hr>
<c:forEach var ="f" items="${paramValues.fruit}" varStatus="status">
	${f}
	${status.last?'':','}
</c:forEach> // 사과, 포도
  • JSTL core를 통해 기존 for문과 향상된 for문 두 개 사용 가능하다.
  • varStatus는 반복문을 보조한다. int index와 boolean first last 등 값을 제공한다. 자바의 반복문에서 제공하지 않는 매우 유용한 기능이다.
  • EL을 통해 if문을 사용하는 것은 삼항연산자 말고는 없는 것 같다. switch/if/otherwise 등 다양한 조건문을 JSTL는 제공한다.

참고할 만한 내용이 생길 때마다 조금씩 추가하겠습니다^^

profile
JAVA web developer

0개의 댓글