본문 바로가기

개발자노트/웹

HTML - JSP - 커스텀태그 try-catch , 조건문 if

<%@ 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>

<c:catch var="errMsg"> <!-- try / catch와 같은 역할 -->
	<%= 10/0 %>
</c:catch>
<hr>
${errMsg}

</body>
</html>

오류가 발생할 수 있는 내용을 <c:catch > </c:catch>로 감싸주면 된다.

<c: catch 옆에 있는 var는 추후에 이 catch문을 어떻게 불러서 쓸 것인지 변수화 한 것이라

아래에서 ${errMsg}과 같이 JSTL로 호출하여 사용하는 것을 볼 수 있다.

수행결과를 보면 <hr> 아래에 오류의 내용 ( 연산익셉션 ) 이 뜨고 0을 나눌 수 없다라는 것이 표기된다.

 

 

 

if문 또한 사용이 가능한데

<%@ 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>

<c:set var="member" value="ADMIN" /> <!-- 멤버 계정에 어드민으로 접속 -->

<c:if test="${member == 'ADMIN'}">  
   관리자모드입니다.
</c:if>
<c:if test="${member != 'ADMIN'}"> <!-- else가 없음 -->
   일반모드입니다.
</c:if>

</body>
</html>

set을 사용해 member에 "ADMIN" 의 밸류값을 주고 각각의 출력물이 다르게 설정한 것이다.

저 자리에 ADMIN이 아닌 다른 값이라면 일반모드라고 뜰 것이다.