상세 컨텐츠

본문 제목

MyBatis 쿼리파일에 if, choos, when, otherwise 사용하기

JSP·자바·코틀린

by 김일국 2015. 9. 14. 21:57

본문

JSTL(JSP 태그라이브러리:jsp함수모음)을 쿼리에 사용할 수 있습니다.

물론 JSP페이지에서 처럼 태그를 사용하는 것은 아니고, 태그만 빼고, 사용하는 방식은 같습니다.

참고로, JSTL에서 if 는 else를 지원하지 못하기 때문에  반쪽짜리 조건문을 사용합니다.

그리고, Switch Case Default 문 대신에

switch 를 선언하는 절은 choose,

case 는 when,

default 는 otherwise 입니다

<%@ page pageEncoding="utf-8" %><%@ page trimDirectiveWhitespaces="true" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<body>
    <c:set value="연습" var="msg"/><!-- var 는 변수명 입니다. -->
    msg : ${msg} <br>
    <c:if test="${msg == '연습'}" var="result"><!-- test 는 ${..} 내용이 참인지 거짓인지를 출력해 줍니다.--> 
    test result = ${result } <br>
    </c:if>
</body>

결과 :

msg : 연습

test result = true

-------------------------------------------------

<c:set value="연습1" var="msg"/> 

<c:choose>
        <c:when test="${msg== '연습1'}">
            연습1 입니다.
       </c:when>
        <c:when test="${msg== '연습2'}">
            연습2 입니다.
       </c:when>
        <c:when test="${msg== '연습3'}">
            연습3 입니다.
       </c:when>
        <c:otherwise>
            조건을 만족하는 값이 없습니다.
        </c:otherwise>
</c:choose>

결과 : 연습1 입니다.

---------------------------------------------------

MyBatis 쿼리에서

SELECT SEQ,ONE,TWO,THREE,FOUR,FIVE,ORDER FROM TABLE

WHERE ONE = 'N' 
      <if test='TWO != null and !THREE.equals("all")'>
      <choose>
        <when test='FOUR.equals("personal") or FIVE.equals("company")'>
        </when>
        <otherwise>
         AND SEQ IS NULL
        </otherwise>
       </choose>
      </if>

<choose>
            <when test='ORDER == 1'>ORDER BY SEQ ASC</when>
            <otherwise>ORDER BY SEQ DESC</otherwise>
</choose>

---------------------- 꽤 가독성은 좋을 듯 합니다.---------------------

관련글 더보기

댓글 영역