-
JSP : Standard JSP Tag Library (JSTL) - Core TagsSpring 2021. 6. 18. 18:47
jsp 태그에는 두가지 종류가 있다.
우리는 JSTL로 공부를 진행한다.
먼저 jstl을 설치하자.
새로운 프로젝트를 시작해준다(dynamic web project)
여기서 라이브러리가 비어있는 것을 확인할 수 있다.
다음에서 jstl파일을 다운받아준다.
www.luv2code.com/download-jstl
인터넷에서 바로 받으려면 다음에서 받을 수 있다.
jstl-api는 jstl인터페이스와 지원클래스의 집합이지만 implementation(오버라이딩이 필수인 상속)이 안되어 있는 인터페이스가 많고,
jstl은 jstl 인터페이스의 implementation상속(오버라이딩 필수)이 모두 이루어져있는 파일이다.
https://mvnrepository.com/artifact/org.glassfish.web/javax.servlet.jsp.jstl/1.2.1
https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/javax.servlet.jsp.jstl-api/1.2.1
이제 제대로 작동하는지 테스트 해본다.
test.jsp파일을 만들고 다음과 같이 작성한다.
<%@ taglib uri= "http://java.sun.com/jsp/jstl/core" prefix = "c" %> <html> <body> <c:set var = "stuff" value = "<%=new java.util.Date() %>"/> Time on the server is ${stuff}. </body> </html>
먼저 jstl의 코어부분을 보자.
JSTL-core
모든 core태그는 다음을 포함해야 한다.
foreach를 구현해보자.
foreach-simple-test.jsp
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %> <% //just create some sample data ...normally provided by MVC String[] cities = {"Seoul", "Newyork", "Berlin"}; pageContext.setAttribute("mycities",cities ); %> <html> <body> <c:forEach var="tempCity" items = "${mycities}"> ${tempCity}<br/> </c:forEach> </body> </html>
이제 loop를 이용해서 테이블을 만들어보자.
먼저 자바 패키지>클래스를 만들어줄 것이다.
package com.yunhalee.jsp.tagdemo; public class Student { private String firstName; private String lastName; private Boolean goldCustomer; public Student(String firstName, String lastName, Boolean goldCustomer) { super(); this.firstName = firstName; this.lastName = lastName; this.goldCustomer = goldCustomer; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Boolean getGoldCustomer() { return goldCustomer; } public void setGoldCustomer(Boolean goldCustomer) { this.goldCustomer = goldCustomer; } }
foreach-student-test.jsp
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page import = "java.util.*, com.yunhalee.jsp.tagdemo.Student" %> <% //just create some sample data ... normally provided by MVC List<Student> data = new ArrayList<>(); data.add(new Student("John", "Doe", false)); data.add(new Student("Maxwell", "Johnson", false)); data.add(new Student("Mary", "Public", true)); pageContext.setAttribute("myStudents", data); %> <html> <body> <c:forEach var = "tempStudent" items="${myStudents}"> ${tempStudent.firstName } ${tempStudent.lastName }, ${tempStudent.goldCustomer } <br/> </c:forEach> </body> </html>
테이블을 만들자 .
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page import = "java.util.*, com.yunhalee.jsp.tagdemo.Student" %> <% //just create some sample data ... normally provided by MVC List<Student> data = new ArrayList<>(); data.add(new Student("John", "Doe", false)); data.add(new Student("Maxwell", "Johnson", false)); data.add(new Student("Mary", "Public", true)); pageContext.setAttribute("myStudents", data); %> <html> <body> <table border="1"> <tr> <th>First Name</th> <th>Last Name</th> <th>Gold Customer</th> </tr> <c:forEach var = "tempStudent" items="${myStudents}"> <tr> <td>${tempStudent.firstName } <td/> <td>${tempStudent.lastName }</td> <td> ${tempStudent.goldCustomer }</td> </tr> </c:forEach> </table> </body> </html>
만약 jstl을 이용해서 쿠키정보를 가져오려면 다음을 참고해서 사용하면 된다.
이번엔 if를 적용해보자.
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page import = "java.util.*, com.yunhalee.jsp.tagdemo.Student" %> <% //just create some sample data ... normally provided by MVC List<Student> data = new ArrayList<>(); data.add(new Student("John", "Doe", false)); data.add(new Student("Maxwell", "Johnson", false)); data.add(new Student("Mary", "Public", true)); pageContext.setAttribute("myStudents", data); %> <html> <body> <table border="1"> <tr> <th>First Name</th> <th>Last Name</th> <th>Gold Customer</th> <th>Discount</th> </tr> <c:forEach var = "tempStudent" items="${myStudents}"> <tr> <td>${tempStudent.firstName } </td> <td>${tempStudent.lastName }</td> <td> ${tempStudent.goldCustomer }</td> <td> <c:if test = "${tempStudent.goldCustomer }"> Special Discount </c:if> <c:if test = "${not tempStudent.goldCustomer }"> No Discount </c:if> </td> </tr> </c:forEach> </table> </body> </html>
이번엔 choose택을 이용해보자.
(switch)
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page import = "java.util.*, com.yunhalee.jsp.tagdemo.Student" %> <% //just create some sample data ... normally provided by MVC List<Student> data = new ArrayList<>(); data.add(new Student("John", "Doe", false)); data.add(new Student("Maxwell", "Johnson", false)); data.add(new Student("Mary", "Public", true)); pageContext.setAttribute("myStudents", data); %> <html> <body> <table border="1"> <tr> <th>First Name</th> <th>Last Name</th> <th>Gold Customer</th> <th>Discount</th> </tr> <c:forEach var = "tempStudent" items="${myStudents}"> <tr> <td>${tempStudent.firstName } </td> <td>${tempStudent.lastName }</td> <td> ${tempStudent.goldCustomer }</td> <td> <c:choose> <c:when test = "${tempStudent.goldCustomer }"> Special Discount </c:when> <c:otherwise > No soup for you! </c:otherwise> </c:choose> </td> </tr> </c:forEach> </table> </body> </html>
'Spring' 카테고리의 다른 글
JSP : Standard JSP Tag Library (JSTL) - I18N Tags (Multi-Lingual App) (0) 2021.06.18 JSP : Standard JSP Tag Library (JSTL) - Functional Tags (0) 2021.06.18 JSP : 사용자 action을 session, cookie에 따라서 추적하기 (To Do, 쿠키 사이트) (0) 2021.06.18 JSP의 기본 사용 방법 (0) 2021.06.18 Instagram 클론 -3) backend와 frontend 합치기 (0) 2021.06.12