jstl

Jinjin·2023년 3월 23일
1

1. 데이터를 post 타입으로 보내고 받기

  • jstlEx1.jsp
    <form action="jstlEx1.jsp" method="post">
    		이름<input type="text" name="name" value="${param.name}">
    		<button type="submit">보내기</button>
    </form>
    
    <p>${param.name}</p>

2. tagLib 사용

  • <c:set var=”” value=”” />
    <c:set var="num1" value="${10}" /> <!-- int num1 = 10; -->
    <c:set var="num2" value="${20}" /> <!-- int num2 = 20; -->
    	
    <p>num1 + num2 = ${num1 + num2}</p>
    	
    <c:remove var="num1"/>
    	
    <p>num1 + num2 = ${num1 + num2}</p>
  • <c:forEach items=”” varStatus=”” />
    <%
    		String[] color = {"red", "yellow", "blue"};
    %>
    <c:forEach items = "<%= color %>" varStatus="i">
    		<p>${i.count}.&nbsp;${i.current}</p>
    </c:forEach>
    
    <c:forEach begin="1" end="10" step="2" var="num">
    		${num}&nbsp;&nbsp;
    </c:forEach>
  • <c:if test=””>
    <c:set var="country" value="${'japan'}" />
    <c:if test="${!empty country}">
    	country : ${country}
    </c:if>
    
    <c:if test="${empty country}">
    	country : 비어있음
    </c:if>
    <br>
    <c:if test="${country == 'japan'}">
    	나라 : ${country}
    </c:if>
    
    <c:if test="${country != 'japan'}">
    	나라 : 존재X
    </c:if>
  • <c:forTokens item=”” delims=”” var =”” />
    <c:forTokens items="아빠,엄마,오빠" delims="," var="people">
    		${people}&nbsp;&nbsp;
    </c:forTokens>
  • <c:choose>
    <c:choose>
    	<c:when test="${color == 'red'}"> 빨간색 </c:when>
    	<c:when test="${color == 'blue'}"> 파란색 </c:when>
    	<c:otherwise>기타색</c:otherwise>
    </c:choose>
  • 예제) 반복하고 싶은 문구와 횟수를 매개변수로 받아서 아래에 출력한다.

    ```java
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>    
    <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<fmt:requestEncoding value="UTF-8"/>
    	<form submit="jstlEx3.jsp" method="post">
            반복하고 싶은 문구 : <input type="text" name="str" value="${param.str}"><br>
            반복하고 싶은 횟수 : <input type="text" name="num" value="${param.num}"><br>
            <button type="submit">실행</button>
        </form>
    
        <c:forEach begin="1" end="${param.num}" step="1" var="i">
            <p>${i}.&nbsp; ${param.str}</p>
        </c:forEach>
    </body>
    </html>
    ```
    
    ⇒ post 방식으로 데이터를 받아오기 때문에 **<fmt:requestEncoding value="UTF-8"/>** 인코딩의 작업이 따로 필요하다. (get 방식에서는 자동으로 인코딩을 해주기 때문에 따로 인코딩의 작업을 할 필요가 없음)
profile
BE Developer

0개의 댓글