web parameter 출력

param, paramValues객체를 사용.

  • 이름이 유일
    ${ param.폼컨트롤명 }

  • 이름이 중복(JSTL과 같이 사용)
    ${ paramValues.폼컨트롤명[인덱스] }

  • EL에서 변수의 출력
    EL에서는 변수를 직접 출력할 수 없다.

  • scope객체에 저장된 변수는 출력할 수 있다.

  • scope객체 => EL에서 지원하는 scope객체명
    pageContext => pageScope
    request => requestScope
    session => sessionScope
    application => applicationScope
  • 사용법)
  1. scope객체에 값 설정
    pageContext.setAttribute("이름",값);
    request.setAttribute("이름",값);
    session.setAttribute("이름",값);
    application.setAttribute("이름",값);

  2. EL에서 scope객체 값 얻기
    pageScope.이름{ pageScope.이름 }{ requestScope.이름 }
    sessionScope.이름{ sessionScope.이름 }{ applicationScope.이름 }

  • 이름이 같다면 scope객체를 생략했을 때
    pageScope > requestScope > sessionScope > applicationScope 순으로 접근이 된다.

JSTL(Java Standard Tag Library)

java가 아닌 다른 개발자나 단체에 만들고 배포하는 액션태그.
표준액션(액션태그)에서 지원하지 않는 기능을 제작하여 제공하는 것.
Tag Lib라고 한다.
배포는 .jar로 되고, Web Application에서 사용하려면 WEB-INF/lib 폴더에 넣으면 된다.

사용법)
1. 지시자 선언) - 외부 Tag Lib를 연결하기 위해 선언.
<%@ taglib prefix="접두어" uri="Tag Lib를 사용하기 위해 제공하는 URL" %>

  1. Tag Lib에서 제공하는 태그사용.
    <prefix:태그명 속성="값",,,,>내용</prefix:태그명>
  • core
    -제공 기능 : 변수선언, 화면출력, 제어문, import, redirect, exception

  • 사용법)

  1. JSTL을 사용하기 위한 지시자 선언
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

  2. 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 – 태그로 그려서 출력

제어문

  • scriptlet 없이 JSTL에서는 제어문을 사용할 수 있다.
    조건문 : if, choose, when, otherwise
    반복문 : forEach, forTokens

-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>

배열, java.util.collection 출력

숫자를 출력하는 속성은 사용하지 않는다.(begin,end,step)

문법)
<c:foreach var="변수명" items="배열명,Collection"varStatus="증가하는값을저장할변수">{ 배열명, Collection}" varStatus="증가하는 값을 저장할 변수">{ 변수명 }
</c:foreach>

사용법)
<%
//1. 배열, Collection 생성
String[] arr = {"값",,,,};

//2. Scope객체에 저장 => EL에서 직접 사용할 수 없으므로
pageContext.setAttribute("arr",arr);

//3. 반복
<c:foreach var="변수명" items="arr"varStatus="i">{ arr }" varStatus="i">{ i.count } ${ele}
</c:foreach
%>

VO객체 사용

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에서 사용
  1. List생성
    List list = new ArrayList();

  2. 값 할당
    list.add(VO객체 생성);

  3. scope객체에 저장
    pageContext.setAttribute("이름", list);

  4. JSTL을 사용하여 반복
    <c:forEach var = "VO객체" items="${ list }">
    ${ VO객체.name }
    </c:forEach>

0개의 댓글