Criming
코딩으로 업삼기
Criming
전체 방문자
오늘
어제
  • 분류 전체보기 (29)
    • Programming (28)
      • Spring (5)
      • Database (2)
      • JSP (6)
      • Java (10)
      • 탐구 및 해결 (1)
      • 연습문제 (3)
      • 예제 (1)
    • 자격증 (0)
    • 기타 (1)
      • 블로그 운영 (0)
      • 문서 (1)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • spring
  • print()
  • System.out
  • Tomcat
  • jvm
  • HttpuURLConnection
  • redirect
  • ec2
  • param
  • sendRedirect
  • Eclipse
  • try-catch
  • Escape문자
  • jre
  • aws
  • 자바규칙
  • Java EE
  • 표현언어
  • jsp
  • java
  • main()
  • Java SE
  • 아스키코드
  • forward
  • 인스턴스
  • json
  • JDK
  • printf()
  • ASCII
  • println()

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Criming

코딩으로 업삼기

[JSP] JSTL 커스텀태그 기본예제
Programming/예제

[JSP] JSTL 커스텀태그 기본예제

2022. 10. 13. 13:41

예제1) JSTL 기본 출력/변수 지정 <c:out>, <c:set>

 <!-- JSTL 커스텀태그 'c' 사용을 위한 구문 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<h3>일반적인 출력</h3>
<c:out value="hello" /> <br>

<h3> EL 변수지정 출력 </h3>
<c:set var="data1" value="JSTL TEST" />
<c:set var="data2">
	value 속성 대신 해서 태그 사이에 변수에 입력할 값을 넣을 수 있음.
</c:set>
data1 : <c:out value="${data1}"/> <br>
data1 : ${data1}<br>
data2 : ${data2}<br>

<h3> 자바변수+ EL 변수지정 출력 </h3>
<%
	String data3 = "자바 변수의 데이터";
%>
data3 : <%=data3%> <br>

<c:set var="data4" value="<%=data3%>"/>
data4 : ${data4} <br>


예제2) if문 <c:if>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!-- 
	<c:if test="조건식, true or false">
		종속문장
	</c:if>
 -->
 <c:set var="data1" value="자바 변수의 데이터"/>
 <c:if test="${data1 eq '자바 변수의 데이터' }">
 	<h3>참이므로 출력</h3>
 </c:if>

예제3-1) 반복문 <c:forEach>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
	String data[] = {"김변수", "이상수", "박객체"};
%>

<c:set var="names" value="<%=data %>"/>
이름 목록 : ${names[0]}, ${names[1]}, ${names[2]}
<br>
이름 목록 : 
<c:forEach var="i" begin="0" end="2" step="1">
	${names[i]},
</c:forEach>
<br>
이름 목록 :
<c:forEach var="name" items="${names}">
	${name},
</c:forEach>

예제3-2) 반복문 <c:forEach>

<%@	taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
	// 범위 두곳에 같은 변수명으로 지정된 경우 작은 범위 변수가 출력된다.
	// 범위 크기순 : page < request < session < application 
	pageContext.setAttribute("names", new String[]{"김씨", "박씨", "최씨"});
	request.setAttribute("names", new String[]{"김변수", "이상수", "박객체"});
%>
이름 목록 : ${names[0]}, ${names[1]}, ${names[2]}
<br>
이름 목록 : 
<c:forEach var="i" begin="0" end="2" step="1">
	${names[i]},
</c:forEach>
	<br>
이름 목록 :
<c:forEach var="name" items="${names}">
	${name},
</c:forEach>

예제4) case문 <c:choose>, <c:when>, <c:otherwise>

*기존 JAVA에서는  if문에서는 return을 사용할 수 있었지만 jstl을 사용하면 return을 사용할 수 없어 각 경우의 수에마다 줬던 if, else if구문을 <c:choose>를 이용 해야한다.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="name" value="이상수"/>
<c:choose>
	<c:when test="${name == '김변수' }">
		<h3>이름은 김변수입니다.</h3>
	</c:when>
	<c:when test="${name == '이상수' }">
		<h3>이름은 이상수입니다.</h3>
	</c:when>
	<c:otherwise>
		<h3>이름은 홍길동입니다.</h3>
	</c:otherwise>		
</c:choose>

예제5) JSTL 인코딩 방법 <fmt:requestEncoding value="utf-8">, form으로 파라미터 값 넘겨받아 EL태그로 출력하기

*기존 자바 인코딩코드 :  <% request.setCharacterEncoding("utf-8"); %>

(ex7.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<form action="ex7_result.jsp" method="post"><br>
	<input type="text" name="id" placeholder="아이디" /><br>
	<input type="password" name="pw" placeholder="비밀번호" /><br>
	<input type="password" name="confirmPw" placeholder="비밀번호 확인" /><br>
	<input type="text" name="name" placeholder="이름" /><br>
	<input type="text" name="email" placeholder="이메일" /><br>
	<input type="submit" value="회원 가입" /><br>
	<input type="reset" value="취소" />
</form>

(ex7.result.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 인코딩을 위한 fmt태그 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:requestEncoding value="utf-8"/>

    아이디 : ${param.id} <BR>
    비밀번호 : ${param.pw} <br>
    비밀번호 확인 : ${param.confirmPw} <br>
    이름 : ${param.name} <br>
    이메일 : ${param.email} <br>

예제6) 해당 서버에 맞는 root(최상위 경로) 출력 <c:url>

*해당 코드로 경로지정을 해두면 나중에 경로가 바뀌었을 때 일일이 수정하지 않아도 되어 편리하다.

(해당 코드의 최상위 경로 파일명은 'jspExam'이다.)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@	taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!-- 해당 서버에 맞는 root가 출력됨 -->
<c:url var="root" value="/"></c:url>
web context root : ${root} 
<br>
<c:url var="jstl" value="/jstl"></c:url>
jstl path : ${jstl}

 

 

 

 

 

    Criming
    Criming

    티스토리툴바