param, paramValues객체를 사용.
이름이 유일
${ param.폼컨트롤명 }
이름이 중복(JSTL과 같이 사용)
${ paramValues.폼컨트롤명[인덱스] }
EL에서 변수의 출력
EL에서는 변수를 직접 출력할 수 없다.
scope객체에 저장된 변수는 출력할 수 있다.
scope객체에 값 설정
pageContext.setAttribute("이름",값);
request.setAttribute("이름",값);
session.setAttribute("이름",값);
application.setAttribute("이름",값);
EL에서 scope객체 값 얻기
{ requestScope.이름 }
{ applicationScope.이름 }
java가 아닌 다른 개발자나 단체에 만들고 배포하는 액션태그.
표준액션(액션태그)에서 지원하지 않는 기능을 제작하여 제공하는 것.
Tag Lib라고 한다.
배포는 .jar로 되고, Web Application에서 사용하려면 WEB-INF/lib 폴더에 넣으면 된다.
사용법)
1. 지시자 선언) - 외부 Tag Lib를 연결하기 위해 선언.
<%@ taglib prefix="접두어" uri="Tag Lib를 사용하기 위해 제공하는 URL" %>
core
-제공 기능 : 변수선언, 화면출력, 제어문, import, redirect, exception
사용법)
JSTL을 사용하기 위한 지시자 선언
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Tag Lib에 제공하는 태그를 사용
<c:태그명 속성명="값",,,/>
변수관련
변수 선언)
<c:set var="변수명" value="값"/> //선언된 변수명은 EL에서 ${변수명}으로 바로 사용가능.
변수 삭제)
<c:remove var="변수명"/>
웹 브라우저 출력
<c:out value="출력할 값" escapeXml="true | false"/>
<c:set var="i" value="29"/>
<c:out value="i"/> //웹브라우저에 i가 출력
i가 가진 값을 출력할려면 EL을 사용
<c:out value="${ i }"/>
escapeXml : 입력된 값이 HTML Tag를 가지고 있다면
그대로 보여 줄 것인지, 해석하여 그릴 것인지를 설정하는 속성.
true - 문자열로 출력
false – 태그로 그려서 출력
-if :
단일 if 지원
문법)
<c:if test=“조건식”>
조건에 맞을 때 실행될 문장들…..
</c:if>
choose – 여러 조건을 비교할 때.
문법)
<c:choose>
<c:when test=“조건식”>
조건에 맞을 때 수행될 문장들..
</c:when>
<c:when test=“조건식”>
조건에 맞을 때 수행될 문장들..
</c:when>
.
<c:otherwise>
모든 조건에 맞지 않을 때 수행될 문장들…
</c:otherwise>
</c:choose>
반복문
-forEach : 인덱스를 출력하거나, 배열, java.util.Collection을 반복 출력할 때 사용.
인덱스 출력)
문법)
<c:forEach var=“변수명” begin=“시작값” end=“끝값” step=“증가값”>
반복수행 문장들…
EL에서 var의 변수명을 사용하면 begin에서부터 end까지의 값을 사용할 수 있다.
</c:forEach>
숫자를 출력하는 속성은 사용하지 않는다.(begin,end,step)
문법)
<c:foreach var="변수명" items="{ 변수명 }
</c:foreach>
사용법)
<%
//1. 배열, Collection 생성
String[] arr = {"값",,,,};
//2. Scope객체에 저장 => EL에서 직접 사용할 수 없으므로
pageContext.setAttribute("arr",arr);
//3. 반복
<c:foreach var="변수명" items="{ i.count } ${ele}
</c:foreach
%>
EL에서는 getter method를 사용하여 출력할 때 get을 제외한 method명을 소문자로 기술하고 method 기호()를 작성하지 않는다.
public class Test(){
private String name;
public void setName(String name){
}
public void getName(){
}
}
<jsp:useBean id="test" class="Test" scope="page"/>
<jsp:setProperty name="test" property="name" value="정명호 "/>
${ 객체명.getter명 }
${ test.name }
List생성
List list = new ArrayList();
값 할당
list.add(VO객체 생성);
scope객체에 저장
pageContext.setAttribute("이름", list);
JSTL을 사용하여 반복
<c:forEach var = "VO객체" items="${ list }">
${ VO객체.name }
</c:forEach>