카테고리 없음

10 18

dlsgur0528 2024. 10. 18. 17:28

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) //작성해봐야 동작하지 않는다

인덱스를 사용하고 싶다면 varStatus 속성을 사용한다.

 

문법)

<c:forEach var="변수명" items=${배열명,Collection}"  varStatus="증가하는 값을 저장할 변수">

${변수명} //방의 값을 저장할 변수임

 

varstatus에 들어가는 ─

 

</c:forEach>

사용법)

<%

1.배열, Collection생성

String[] arr={값 , , };

2.scope객체에 저장 (EL에서 직접 사용할 수없으므로)

pageContext.setattribute("arr",arr);

 

%>

<c:forEach var="ele" items="${arr}"  varStatus="i">

${i.index}

 

VO객체로 forEach사용하기.

EL에서는 getter method를 사용하여 값을 출력한다.

(get을 제외한 method명을 소문자로 기술하고, method기호 ()를 붙이지 않는다..)

 private String name;

 

List에서 VO활용

1.List생성

List<VO> list = new ArrayList<VO>();

2.값 할당

list.add(new VO(값) , , );

3.scope 객체에 저장

pageContext.setAttribute("이름",list);

4.JSTL을 활용하여 반복으로 값 얻기

<c:forEach var = "VO객체" items="${list}">

  ${VO객체명.getter명}

</c:forEach>

 

 

forTokens

 for문과 java.util.StringTokenizer 가 결합된 태그

CSV데이터를 자를 때 사용함(모든 문자열을 자를 수 있다)

 

<%

String csvData = "a,b,c,d,e"

pageContext.setAttribute("data",csvData);

%>

 

<c:forTokens var="변수명" items="${data}" delims="구분문자"/>

 

import

여러 JSP를 한번에 보여줄 때 사용함,.

보여질 때 (HTML 생성될 때) 합쳐지는 <jsp:include> 액션태그와 동일한 동작을 수행한다.....

URL을 지원(끼워지는 JSP가 다른 서버에 존재 하더라도 include가 가능하다)

 

페이지 지시자의 충돌이 발생하지 않는다, 변수,method가 공유되지 않는다

//jsp:include는 디자인을 합칠 때 사용하며 uri를 사용한다

 

사용법)

<c:import url="포함될 jsp의 URL">

 

execption처리하기.

 

scriptlet(<%%>)과 expression(<%=%>)은 _jspService method안에 try~catch 블록 안으로 코드가 생성된다

개발자가 만든 코드가 컴파일 예외를 발생시켜도 자동으로 처리된다(Throwable)

//try catch를 하지 않아도 에러발생X=>이러면 문제는 에러메시지가 그대로 웹 브라우저에 출력된다.....

//서버의 정보가 외부로 노출되기에 저얼대 발생하면 안된다..

 

c:catch태그를 사용하면 발생되는 예외를 잡을 수 있다..

c:if를 사용하여 예외상황의 메시지를 출력할 수 있음.

 

사용법)

<c:catch var="객체명" >

<% 

예외발생 예상 코드

%>

</c:catch>

 

<c:if test="${ not empty 객체명}" >   // ${객체명 !=null}, 

예외 발생했을때 처리 할 코드

</c:if>

 

redirect

-페이지 이동기술,,

접속자에게 페이지를 응답한 후 접속자 브라우저가 자동으로 재 요청하는 방식

웹 브라우저는 페이지의 이동을 알고 있다.. URL이변경된다

sendRedurect method 와 return이 합쳐진 태그이다.

 

사용법)

<c:redurect url="이동할 페이지의 URL"/>