본문 바로가기

개발자노트/웹

HTML - JSP - 커스텀태그 choose / when / otherwise / 삼항연산자

커스텀 태그에서 다중조건 처리를 위한 choose 문에 대한 설명

when으로 if와 else if 와 비슷한 기능을 수행하고 , otherwise로 else와 비슷한 기능을 수행한다고 생각하면 편함

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<form>
   <select name="sel">
      <option ${param.sel=='-' ? 'selected':''}>-</option>
      <option ${param.sel=='apple' ? 'selected':''}>apple</option>
      		<!-- 이전에 선택된 것이 apple이니? 그렇다면 셀렉트되게 -->		
      <option ${param.sel=='banana' ? 'selected':''}>banana</option>
      <option ${param.sel=='kiwi' ? 'selected':''}>kiwi</option>
   </select>
   <input type="submit" value="선택">
</form>

<hr>

<c:choose>
   <c:when test="${param.sel == 'apple'}">
      apple을 선택하셨습니다.
   </c:when>
   <c:when test="${param.sel == 'banana'}">
      banana를 선택하셨습니다.
   </c:when>
   <c:when test="${param.sel == 'kiwi'}">
      kiwi를 선택하셨습니다.
   </c:when>
   <c:otherwise>
      -----
   </c:otherwise>
</c:choose>

</body>
</html>

각 <c:when> 절에 변수명을 지정해주어서 각 선택지에 대해 select option에 삼항연산자를 적용한 것이다.

select 에 조건을 걸어준다 생각하면 됨 ( if 에 조건 )

 

수행결과

아무것도 선택하지 않았을 떄

 

 

apple을 선택했을 떄

 

banana를 선택했을 때