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 | 31 |
Tags
- layout
- 예외처리
- 기본
- Java
- 에러페이지
- AWT
- Graphic
- 어노테이션
- Menu
- Spring
- 메소드
- 생성자
- 전화걸기
- 안드로이드
- 메서드
- HTML
- JSP
- Eclips
- 이클립스
- paint
- Android
- JavaScript
- OGNL
- 클래스
- 오버로딩
- mybatis
- 배열
- struts2
- oracle
- 국제화
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>