본문 바로가기

카테고리 없음

57/EL/JSTL

 

태그 라이브러리

https://tomcat.apache.org/taglibs/

 

 

 

 

http://kobis.or.kr 

https://www.kobis.or.kr/kobisopenapi/homepg/main/main.do

           xml

           data

 

http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchWeeklyBoxOfficeList.xml?key=f5eef3421c602c6cb7ea224104795888

&targetDt=20120101


표현언어(EL)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="model1.BoardTO" %>
<%
	BoardTO to1 = new BoardTO();
	to1.setSubject("제목1");
	to1.setWriter("작성자1");
	
	BoardTO to2 = new BoardTO();
	to2.setSubject("제목2");
	to2.setWriter("작성자2");
	
	BoardTO[] lists = {to1, to2};
	pageContext.setAttribute("lists", lists);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${lists[0].subject}<br>
${lists[1].subject}<br>
${lists[2].subject}<br> <!-- el은 인덱스가 초과되어도 에러를 막음 -->
${lists[0]['subject']}<br>
${lists[1]['subject']}<br>
</body>
</html>

el07.jsp

표현언어로 배열출력

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="model1.BoardTO" %>
<%@ page import="java.util.ArrayList" %>
<%
	BoardTO to1 = new BoardTO();
	to1.setSubject("제목1");
	to1.setWriter("작성자1");
	
	BoardTO to2 = new BoardTO();
	to2.setSubject("제목2");
	to2.setWriter("작성자2");
	
	ArrayList<BoardTO> lists = new ArrayList<>();
	lists.add(to1);
	lists.add(to2);
	
	pageContext.setAttribute("lists", lists);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${lists[0].subject}<br>
${lists[1].subject}<br>
${lists[2].subject}<br> <!-- el은 인덱스가 초과되어도 에러를 막음 -->
${lists[0]['subject']}<br>
${lists[1]['subject']}<br>
</body>
</html>

el08.jsp

ArrayList<>() 배열로의 출력

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="model1.BoardTO" %>
<%@ page import="java.util.HashMap" %>
<%
	BoardTO to1 = new BoardTO();
	to1.setSubject("제목1");
	to1.setWriter("작성자1");
	
	BoardTO to2 = new BoardTO();
	to2.setSubject("제목2");
	to2.setWriter("작성자2");
	
	HashMap<String, BoardTO> lists = new HashMap<>();
	lists.put("to1", to1);
	lists.put("to2", to2);
	
	pageContext.setAttribute("lists", lists);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${lists.to1.subject}<br><!-- to1,2는 값이 아닌 키 -->
${lists.to2.subject}<br>
</body>
</html>

el09.jsp

HashMap을 이용한 출력문

 

*HashMap객체는 키와 값을 저장할수 있다

 

 

 

 

 

package model1;

public class BoardTO {
	private String subject;
	private String writer;
	
	public String getSubject() {
		System.out.println("getSubject");
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public String getWriter() {
		System.out.println("getWriter");
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	
	
}

BoardTO.java

 

package model1;

public class BoardListTO {
	private String cpage;
	private BoardTO boardTO;
	
	
	public String getCpage() {
		return cpage;
	}
	public void setCpage(String cpage) {
		this.cpage = cpage;
	}
	public BoardTO getBoardTO() {
		return boardTO;
	}
	public void setBoardTO(BoardTO boardTO) {
		this.boardTO = boardTO;
	}
	
	
}

BoardListTO.java

<%@page import="model1.BoardListTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="model1.BoardTO"%>

<%
	BoardTO to1 = new BoardTO();
	to1.setSubject("제목1");
	to1.setWriter("작성자1");
	
	BoardListTO listTO = new BoardListTO();
	listTO.setCpage("1");
	listTO.setBoardTO(to1);
	
	pageContext.setAttribute("listTO", listTO);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${listTO.boardTO.subject}
${listTO.boardTO.writer}
${listTO.cpage}
</body>
</html>

el10.jsp

 

TO 클래스 2개를 사용해 출력

(ListTO안에 BoardTO를 출력)

 

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="util.FormatUtil" %>
<%
	pageContext.setAttribute("price", 12345L);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
가격 : ${pirce}원입니다.<br>
가격 : ${FormatUtil.chageFormat(price,'#,##0')}원입니다.<br>
</body>
</html>

el11.jsp

 

 

 

 

<%@page import="chap11.Thermometer"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	Thermometer thermometer = new Thermometer();
	request.setAttribute("t", thermometer);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>온도변환예제</title>
</head>
<body>
${t.setCelsius('서울', 27.3)}
서울온도 : 섭씨 ${t.getCelsius('서울')}도 / 화씨 ${t.getFahrenheit('서울')}
<br>
정보 : ${t.info}
</body>
</html>

thermometer.jsp

 

EL에서 객체의 메서드 호출

 

 

 


JSTL( JSP Standard Tag Library )

JSTL이란?

JSP는 스크립트릿과 표현식등의 스크립트 코드와 HTML코드가 뒤섞여서

코드를 알아보기 힘들다.

하지만 이 코드들을 HTML 태그와 비슷한 코드를 사용해서 가독성이 뛰어나게 만들고 이해하기 쉽게

만들수 있다.

또한, JSP 에서 많이사용되는 논리적인 판단, 반복처리, 포맷처리를 위한 커스텀태그를 표준으로

만들어 정의한 것이 JSTL이다

 

jstl사용시 jar파일 2개가 필요

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
출력(표현식) : <%="browser1" %><br> 
출력(표현언어) : ${ "browser2" }<br>
출력(jstl) : <c:out value="browser3" /><br>

<%
	pageContext.setAttribute("data1", "browser4");
%>
출력 : <%=pageContext.getAttribute("data1") %><br>
출력 : ${ data1 }<br>
출력 : <c:out value="${data1}" /><br>

출력 : <c:out value="${data2}" /><br>
출력 : <c:out value="${data2}" default="browser" /><br>

출력 : <c:out value="${data3}">browser</c:out> <br>
출력 : <c:out value="${data3 = 'borwser' }" /><br> 
</body>
</html>

jstl01.jsp

 

jstl에서 태그를 쓰려면 import를 하는데 jstl에서의 import방식은 jsp와 다름

<%@   %> 로 import는 같지만 taglib이란것을 쓰고 prefix로 태그의 이름을 정하고

마지막/core부분에 다른 uri를 넣는다

(책 294p 참조)

 

jstl에서의 sysout은 <c:out value="EL문"> 이다

 

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="data1" value="value1" scope="page" />
출력 : ${ data1 }<br>
출력 : <c:out value="${data1}" /><br>
출력 : <%= pageContext.getAttribute("data1") %><br>
</body>
</html>

jstl02.jsp

 

jstl에서의 scope:"" 는 page, request, session, application 이있다

기본값은 page이다

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="data1" value="value1" scope="page" />
<c:set var="data2" value="value2" scope="request" />
<c:set var="data3" value="value3" scope="session" />
<c:set var="data4" value="value4" scope="application" />

<c:out value="${ data1 }" /><br>
<c:out value="${ data2 }" /><br>
<c:out value="${ data3 }" /><br>
<c:out value="${ data4 }" /><br>

<c:out value="${ pageScope.data1 }" /><br>
<c:out value="${ requestScope.data2 }" /><br>
<c:out value="${ sessionScope.data3 }" /><br>
<c:out value="${ applicationScope.data4 }" /><br>
</body>
</html>

jstl03.jsp

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="data" value="value" />
<c:out value="${ data }" /><br>
<c:remove var="data" />
<c:out value="${ data }" />
</body>
</html>

jstl04.jsp

 

var = 변수명

value = 변수의 값

 

 

 

package model1;

public class BoardTO {
	private String subject;
	private String writer;
	
	
	public String getSubject() {
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	
	
}

BoardTO.java

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="to" value="<%=new model1.BoardTO() %>" scope="page" />
<c:set target="${ to }" property="subject" value="제목" />
<c:set target="${ to }" property="writer" value="작성자" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
%{ to.subject }<br>
%{ to.writer }<br>
</body>
</html>

jstl05.jsp

 

jstl에서의 Board TO가져오기

 

 

 

 

 

 

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

시작<br>
<c:if test="true">
	무조건실행<br>
</c:if>

<c:set var="country" value="korea" />
<c:if test="${ country == 'korea' }">
	대한민국입니다.<br>
</c:if>

끝<br>

</body>
</html>

jstl06.jsp

 

jstl에서의 if문

 

 

 

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

시작<br>
<c:set var="country" value="canada" />
<c:choose>
	<c:when test="${ country == 'korea' }">
		<c:out value="${ country }" />의 겨울은 춥다.
	</c:when>
	
	<c:when test="${ country == 'canada' }">
		<c:out value="${ country }" />의 겨울은 더 춥다.
	</c:when>
	
	<c:otherwise>
		겨울은 안춥다<br>
	</c:otherwise>
</c:choose>
끝<br>

</body>
</html>

jstl07.jsp

 

jstl에서의 <c:when> 태그는

jsp에서의 switch문과 if else 문을 혼합한형태

 

<c:otherwise>는 else이다

 

 

 

 

 

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

시작<br>

<c:forEach var="i" begin="1" end="10" step="2">
	Hello JSTL : ${ i }<br>
</c:forEach>

<c:forEach var="i" begin="1" end="3">
	<c:forEach var="j" begin="1" end="3">
		${ i } / ${ j }<br>
	</c:forEach>
</c:forEach>

끝<br>

</body>
</html>

jstl08.jsp

 

jstl에서의 for증감문

 

 

 

 

 

 

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

시작<br>

<c:set var="intArr" value="<%=new int[]{1, 2, 3, 4, 5 } %>" />

<c:out value="${ intArr[0] }" /><br>
<c:out value="${ intArr[1] }" /><br>
<c:out value="${ intArr[2] }" /><br>

<hr>
<!-- 향상된 for문 -->
<c:forEach var="data" items="${ intArr }" begin="2" end="4">
	<c:out value="${ data }" /><br>
</c:forEach>

끝<br>

</body>
</html>

jstl09.jsp

 

jstl에서의 배열

 

 

 

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	table {
		width: 800px;
		border-collapse:collapse;
	}
	table, td {
		border: 1px solid black;
	}
</style>
</head>
<body>

<table>
	<c:forEach var="row" begin="0" end="9">
		<tr>
			<c:forEach var="col" begin="0" end="9">
				<c:choose>
					<c:when test="${row == 0 && col == 0 }">
						<td>&nbsp;</td>
					</c:when>
					<c:when test="${row == 0 }">
						<td>X ${col}</td>
					</c:when>
					<c:when test="${col == 0 }">
						<td> ${row} 단</td>
					</c:when>
					<c:otherwise>
						<td>${ row } X ${ col } = ${ row*col }</td>
					</c:otherwise>
				</c:choose>
			</c:forEach>
		</tr>
	</c:forEach>
</table>

</body>
</html>

Gugudan.jsp

 

jstl에서의 구구단문 출력

 

 

 

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	table {
		width: 800px;
		border-collapse:collapse;
	}
	table, td {
		border: 1px solid black;
	}
</style>
</head>
<body>

<form action="Gugudan02.jsp" method="post">
시작단 <input type="text" name="startdan" />
~
끝단 <input type="text" name="enddan" />
<input type="submit" value="구구단보기" />
</form>

<hr>

<c:if test="${!empty(param.startdan) || !empty(param.enddan) }">
	<table>
	<c:forEach var="row" begin="${ param.startdan }" end="${ param.enddan }">
		<tr>
			<c:forEach var="col" begin="1" end="9">
				<td>${ row } X ${ col } = ${ row * col }</td>
			</c:forEach>
		</tr>
	</c:forEach>
	</table>
</c:if>
</body>
</html>

Gugudan02.jsp

 

jstl에서의 form문과 구구단출력

 

 

 

 

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

<%-- <c:redirect url="https://www.daum.net" /> --%>

<%--
<c:redirect url="https://search.daum.net/search">
	<c:param name="w" value="tot" />
	<c:param name="q" value="카타르월드컵" />
</c:redirect>
 --%>
 
<c:redirect url="https://search.naver.com/search.naver">
	<c:param name="query" value="카타르월드컵" />
</c:redirect>

jstl10.jsp

 

jstl에서의 url바로가기

 

 

 

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

<!-- 외부에 있는 html문서를 읽어 들이는 기능 -->

네이버 바로보기
<hr>
<c:import url="https://m.naver.com" />

jstl11.jsp

 

jstl에서의 html문서 읽기

 

html문서만 출력함.

 

 

 

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

<!-- 외부에 있는 html문서를 읽어 들이는 기능 -->

<c:import var="htmldata" url="https://m.naver.com" />

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<textarea rows="50" cols="500">
${ htmldata }
</textarea>

</body>
</html>

jstl12.jsp

 

jstl에서 html코드 출력

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!-- 외부에 있는 HTML문서를 읽어들이는 기능 -->
<c:url var="url" value="http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchWeeklyBoxOfficeList.xml">
	<c:param name="key" value="f5eef3421c602c6cb7ea224104795888" />
	<c:param name="targetDt" value="20120101" />
</c:url>
<c:import var="htmldata" url="${url}"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<textarea rows="50" cols="500">
${htmldata }
</textarea>

</body>
</html>

jstl13.jsp

 

xml 출력

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forTokens 태그</title>
</head>
<body>

콤마와 점을 구분자로 사용:<br>
<c:forTokens var="token" items="빨강색,주황색.노란색.초록색,파랑색,남색.보라색" delims=",.">
${ token }
</c:forTokens>

</body>
</html>

for_tokens_tag.jsp

 

jstl에서의 구분자 삭제

(토큰 추출)

 

 

 

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>catch 태그</title>
</head>
<body>

<c:catch var='ex'>
name 파라미터의 값 = <%=request.getParameter("name") %><br>
<% if(request.getParameter("name").equals("test")) { %>
${param.name}은 test입니다.
<% } %>
</c:catch>
<p>
<c:if test="${ex != null}">
익셉션이 발생하였습니다:<br>
${ex}
</c:if>

</body>
</html>

use_catch_tag.jsp

 

jstl에서의 익셉션

 

<c:catch> 태그는 익셉션을 EL변수에 저장해 출력

 

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<s:setDataSource
	var="ds"
	url="jdbc:mysql://localhost:3306/sample"
	driver="org.mariadb.jdbc.Driver"
	user="root"
	password="!123456"
	scope="page"
/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<!-- 별칭은 안붙음 원래이름만가능(에러나진않음) -->
<s:query var="rs" dataSource="${ ds }" sql="select deptno as 부서번호, dname as 부서이름, loc as 부서위치 from dept3" />

<table border="1" width="600">
<tr>
	<c:forEach var="columnName" items="${ rs.columnNames }">
		<td>${ columnName }</td>
	</c:forEach>
</tr>

<c:forEach var="row" items="${rs.rows}">
<tr>
	<td>${row.deptno}</td>
	<td>${row.dname}</td>
	<td>${row.loc}</td>
</tr>
</c:forEach>

</table>

</body>
</html>

jstl14.jsp

 

jstl에서 DB연결시 당연히 라이브러리에 DB연동jar파일일 추가하고

context.xml또한 추가한다.

 

dept3은 dept를 복사함.

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="http://java.sun.com/jsp/jstl/sql" %>
<s:setDataSource
	var="ds"
	url="jdbc:mysql://localhost:3306/sample"
	driver="org.mariadb.jdbc.Driver"
	user="root"
	password="!123456"
	scope="page"
/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

${ ds }<br>
<%-- <s:update var="result" dataSource="${ ds }" sql="insert into dept3 values (91, '홍보부', '서울')" />  --%>
<s:update var="result" dataSource="${ ds }" sql="insert into dept3 values (?, ?, ?)" >
	<s:param value="93" />
	<s:param value="기획부" />
	<s:param value="대구" />
</s:update>
결과 : ${result}<br>

</body>
</html>

jstl15.jsp

 

jstl에서의 DB연결

(insert문)

 

 

 

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<s:setDataSource
	var="ds"
	dataSource="jdbc/mariadb1"
	scope="page"
/>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<!-- 별칭은 안붙음 원래이름만가능(에러나진않음) -->
<s:query var="rs" dataSource="${ ds }" sql="select deptno as 부서번호, dname as 부서이름, loc as 부서위치 from dept3" />

<table border="1" width="600">
<tr>
	<c:forEach var="columnName" items="${ rs.columnNames }">
		<td>${ columnName }</td>
	</c:forEach>
</tr>

<c:forEach var="row" items="${rs.rows}">
<tr>
	<td>${row.deptno}</td>
	<td>${row.dname}</td>
	<td>${row.loc}</td>
</tr>
</c:forEach>

</table>

</body>
</html>

jstl16.jsp

 

 

as로 별칭을 붙이는것은 불가능

 

 

 

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


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<!-- 별칭은 안붙음 원래이름만가능(에러나진않음) -->
<s:query var="rs" dataSource="jdbc/mariadb1" sql="select deptno as 부서번호, dname as 부서이름, loc as 부서위치 from dept3" />

<table border="1" width="600">
<tr>
	<c:forEach var="columnName" items="${ rs.columnNames }">
		<td>${ columnName }</td>
	</c:forEach>
</tr>

<c:forEach var="row" items="${rs.rows}">
<tr>
	<td>${row.deptno}</td>
	<td>${row.dname}</td>
	<td>${row.loc}</td>
</tr>
</c:forEach>

</table>

</body>
</html>

jstl17.jsp

 

전의 코드보다 더 간단하게 바꿈

 

 

 

 

<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>함수 사용</title>
</head>
<body>
<c:set var="str1" value="Functions <태그>를 사용합니다." />
<c:set var="str2" value="사용" />
<c:set var="tokens" value="1,2,3,4,5,6,7,8,9,10" />

legnth(str1) = "${ fn:length(str1) }" <br>
toUpperCase(str1) = "${ fn:toUpperCase(str1) }" <br>
toLowerCase(str1) = "${ fn:toLowerCase(str1) }" <br>
substring(str1, 3, 6) = "${ fn:substring(str1, 3, 6) }" <br>
substringAfter(str1, str2) = "${ fn:substringAfter(str1, str2) }" <br>
substringBefore(str1, str2) = "${ fn:substringBefore(str1, str2) }" <br>
trim(str1) = "${fn:trim(str1)}" <br>
replace(str1, sec, dest) = "${fn:replace(str1, "", "-")}"<br>
indexOf(str1, str2) = "${fn:indexOf(str1, str2)}"<br>
startsWith(str1, str2) = "${fn:startsWith(str1, "Fun")}"<br>
endsWith(str1, str2) = "${fn:startsWith(str1, "합니다")}"<br>
contains(str1, str2) = "${fn:contains(str1, str2)}"<br>
containslgnoreCase(str1, str2) = "${fn:containsIgnoreCase(str1, str2)}"<br>

<c:set var="array" value="${ fn:split(tokens, ',') }" />

join(array, "-")= = "${ fn:join(array, "-") }"<br>
escapeXml(str1) = "${ fn:escapeXml(str1) }"<br>
</body>
</html>

use_function.jsp

 

jstl에서의 각종 메서드