ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP : Standard JSP Tag Library (JSTL) - Core Tags
    Spring 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

    다음과 같이 압축을 풀고 파일을 lib폴더 안으로 옮겨준다. 

     

    이제 제대로 작동하는지 테스트 해본다. 

     

    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>

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.