Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 메서드
- 안드로이드
- mybatis
- oracle
- 배열
- Android
- 예외처리
- 클래스
- OGNL
- struts2
- Graphic
- paint
- Eclips
- 국제화
- 이클립스
- 에러페이지
- Menu
- 기본
- HTML
- 오버로딩
- 생성자
- JSP
- Java
- 어노테이션
- 전화걸기
- JavaScript
- layout
- Spring
- AWT
- 메소드
Archives
- Today
- Total
note
EL , JSTL 코어태그 (c:forEach)(c:choose) 본문
코어태그 라이브러리
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="kame.chap16.Member" %>
<%@ page import="java.util.HashMap" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
Member member = new Member();
HashMap<String,String>pref = new HashMap<String,String>();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>set 태그</title>
</head>
<body>
<!-- scope영역을 지정해주지 않았으므로 기본적으로 pageContext에 저장 -->
<!-- target el로 값을 읽어옴 property에 value를 집어넣음 -->
<c:set var="member" value="<%=member %>"/>
<c:set target="${member}" property="name" value="최범균" />
<!-- #은 EL에서 사용하는 기호 (많이 사용하지 않음)(비추천) -->
<!-- 처음에 속성을 사용하지 않고 명시만 할 수 있음 (데이터는 없고 위치만 잡는) -->
<c:set var="pref" value="<%=pref %>" />
<c:set var="favoriateColor" value="#{pref.color}" />
회원 이름 : ${member.name},
좋아하는 색 : ${favoriateColor}
<br/>
<c:set target="${pref}" property="color" value="red" />
설정 이후 좋아하는 색 : ${favoriateColor}
</body>
</html>
5번 라인
해당 클래스가 식별자를 통해 불려지도록함
<c:set />
${속성명} -> getAttribute(속성명)
<c:remove/> -> removeAttribute(속성명)
<c:remove/> -> removeAttribute(속성명)
<c: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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>if 태그</title>
</head>
<body>
<c:if test="true">
무조건 수행<br/>
</c:if>
<c:if test="${param.name=='bk'}">
name 파라미터의 값이${param.name}입니다.<br/>
</c:if>
<c:if test="${18<=param.age}">
당신의 나이는 18세 이상입니다.
</c:if>
<%-- 다중 조건 체크는 못함(else) --%>
</body>
</html>
<c:choose>
한번의 문장 만 실행하고 빠져나가기 때문에 착각에 빠지기 쉽다
<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>choose 태그</title>
</head>
<body>
<ul>
<c:choose>
<c:when test="${param.name=='bk'}">
<li>당신의 이름은 ${param.name}입니다.</li>
</c:when>
<c:when test="${param.age>=20}">
<li>당신은 20세 이상입니다.</li>
</c:when>
<c:otherwise>
<li>당신은 'bk'가 아니고 20세 이상이 아닙니다.</li>
</c:otherwise>
</c:choose>
</ul>
</body>
</html>
<c:forEach>
VarStatus 속성
index : 루프 실행에서 현재 인덱스
count : 루프 실행 횟수
begin : begin 속성값
end : end속성값
step : step 속성값
first : 현재 실행이 첫 번째 실행인 경우 true
last : 현재 실행이 루프의 마지막 실행인 경우 true
current : 컬렉션 중 현재 루프에서 사용할 객체
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.HashMap" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>forEach 태그</title>
</head>
<body>
<%-- 대입 연산자가 없기 떄문에 sum에 계속 덮어씌워서 마지막 값이 출력됨 --%>
<h4>1부터 100까지 홀수의 합</h4>
<c:set var="sum" value="0" />
<c:forEach var="i" begin="1" end="100" step="2" >
<c:set var="sum" value="${sum+i}" />
</c:forEach>
결과 = ${sum}
<h4>구구단 : 4단</h4>
<ul>
<c:forEach var="i" begin="1" end="9">
<li>4 * ${i} = ${4 * i}</li>
</c:forEach>
</ul>
<%-- varStatus :루프 상태를 저장할 EL 변수 이름 --%>
<h4>int형 배열</h4>
<c:set var="intArray" value="<%=new int[]{1,2,3,4,5} %>" />
<c:forEach var="i" items="${intArray}" begin="2" end="4" varStatus="status">
${status.index}-${status.count}-[${i}]<br/>
</c:forEach>
<h4>Map</h4>
<%
HashMap<String,Object> mapData = new HashMap<String,Object>();
mapData.put("name","최범균");
mapData.put("today",new java.util.Date());
%>
<c:set var="map" value="<%=mapData %>" />
<c:forEach var="i" items="${map}">
${i.key} = ${i.value}<br/>
</c:forEach>
</body>
</html>
HashMap
<%
HashMap map = new HashMap();
%>
스크립트 릿 안에 있는 객체는 EL과 JSTL에서 사용할 수 없다
그래서 page,request,session,application 에 넣어야된다
<c:set var="map" value="<%=map%>" />
<c:forTokens>
<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>forTokens 태그</title>
</head>
<body>
콤마와 점을 구분자로 사용:<br>
<c:forTokens var="token" items="빨강색,주황색.노란색.초록색,파랑색,남색.보라색,흰색" delims=",.">
${token } <br/>
</c:forTokens>
</body>
</html>
<c:out>
실행시 오류남 path를 걸어줘야 됨
같은 경로에 있는 파일 이름을 입력
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.IOException,java.io.FileReader" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<%
FileReader reader = null;
try{
String path=request.getParameter("path");
reader = new FileReader(getServletContext().getRealPath(path));
%>
<pre>
소스 코드 = <%=path%>
<c:out value="<%=reader %>" escapeXml="true" />
</pre>
<%}catch(IOException ex){ %>
에러 : <%=ex.getMessage() %>
<%
}finally{
if(reader!=null)
try{
reader.close();
}catch(IOException ex){}
}
%>
</body>
</html>
<c:catch>
<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; 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>
jstl-1.2.jar