개발자의 끄적끄적

[JSTL] <c:import> 사용 Servlet으로 값 보내기 [펌] 본문

개발/java & jsp

[JSTL] <c:import> 사용 Servlet으로 값 보내기 [펌]

효벨 2020. 4. 27. 01:00
728x90
반응형

[JSTL] c:import  사용 Servlet으로 값 보내기 [펌]

 

 

위에는 jstl 종류랑 설명이 있으니

c:import 예제만 보려면 맨 하단 <c:import, c:param 적용예제> 를 참고하세요.

 

JSTL core

 

- JSTL 에서 기본적인 기능들을 구현해 놓은 라이브러리.

- 자바 코드를 사용하지 않아도 쉽게 기본 기능을 구현할 수 있다.

- JSP 페이지에 태그 라이브러리로 등록을 해야한다.

등록하는 방법은

<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core %>

prefix 의 c 는 태그를 사용할 때 항상 붙는 접두어(ex. <c:out>)

uri 는 core 라이브러리가 존재하는 위치

 

JSTL core 라이브러리에 있는 태그

종류

- 출력태그 : <c:out>

- 변수 설정 및 삭제 태그 : <c:set>,<c:remove>

- 예외 처리 태그 : <c:catch>

- 조건 처리 태그 : <c:if>, <c:choose>, <c:when>, <c:otherwise>

- 반복 처리 태그 : <c:forEach>, <c:forTokens>

- 페이지 처리 태그 : <c:import>, <c:redirect>, <c:url>, <c:param>

 

설명

<c:out>

- 지정된 값을 출력시키는 태그.

 

<c:out value="출력값" default="기본값" escapeXml="true 또는 false">

value 속성을 이용해서 변수의 내용을 출력할 수 있다.

value 값이 null 일 경우 dafault 속성의 값을 기본 값으로 사용하게 된다.

escapeXml 은 기본값으로 false 로 지정되어 있으며 <, > 등의 특수 기호의 출력 형태를 설정할 때 쓴다. True 일 경우 < 는 &lt; 로 표현되고, > 는 $gt; 로 표현된다.

 

<c:set>

- 지정된 변수에 값을 입력하는 태그

 

<c:set var="변수명" value="설정값" target="객체" property="값" scope="범위">

var 는 값을 저장할 변수이고

value 는 저장할 값이다.

target 은 값을 설정할 프로퍼티에 대한 객체,

property 는 값을 설정할 객체의 프로퍼티를 의미

scope 는 변수의 유효범위, 설정하지 않으면 기본값으로 page 를 갖는다.

 

<c:remove>

- 설정된 속성을 제거하는 태그

 

<c:remove var="변수명" scope="범위">

var 은 설정된 속성이 저장되어 있는 변수

scope 는 지정된 범위에세 저장된 속성을 찾는다.

 

<c:catch>

- 예외 처리를 위한 태그

 

<c:catch var="변수명">

예외가 발생하면 var에 지정된 변수에 오류 내용을 입력한다.

 

<c:if>

- 조건 처리를 할때 쓰이는 태그, java의 if와 동일한 기능

 

<c:if test="조건" var="변수명" scope="범위">

test 조건을 지정한다.

var 조건 처리한 결과를 저장한다.

scope는 var 속성에 지정한 변수의 범위를 의미한다.

 

<c:choose>

- 조건 처리를 할 때 쓰이는 태그, java 의 switch 와 동일한 기능

 

<c:choose>

   <c:when test="조건"></c:when>

   <c:otherwise></c:otherwise>

</c:choose>

test 속성으로 조건을 확인하여 만족하면 <c:when>과 </c:when> 사이의 내용을 처리한다.

( <c:when> 태그는 조건에 따라 여러개가 사용될 수 있다.)

모든 조건에 만족하지 않을 경우 <c:otherwise>과 </c:otherwise> 사이의 내용을 처리한다.

 

<c:forEach>

- 자바의 for 문과 동일한 기능

 

<c:forEach items="객체명" begin="시작 인덱스" end="끝 인덱스" step="증감식"

  var="변수명" varStatus="상태변수">

items 속성에 인덱스가 존재하는 객체를 지정하여 객체의 인덱스만큼 반복할 수 있다.

begin과 end 속성으로 원하는 범위만큼 반복문을 수행한다.

step 증감식 설정

var 은 현재 반복하고 있는 값을 기억하는 변수

varStatus 는 반복의 상태를 갖게 되는 변수

 

<c:forTokens>

- 자바의 for 문과 StringTokenizer 객체를 결합하였다고 볼 수 있다.

 

<c:forTokens items="객체명" delims="구분자" begin="시작 인덱스" end="끝 인덱스" step="증감식" var="변수명" varStatus="상태변수">

items에 지정한 값을 delims 속성의 구분자로 나눈 후 나눠진만큼 반복수행.

items, delims, var 이 3가지 속성만으로도 수행가능.

begin, end 는 delims 구분자로 나눠진 값들을 기준으로 시작 값과 끝 값을 정해준다.

 

<c:import>

- 지정된 URL을 태그가 사용된 JSP 페이지에 출력시키는 기능

 

<c:import url="URL값" var="변수명" scope="범위" varReader="변수명"

  context="context명" charEncoding="인코딩값">

url 속성에는 http뿐만 아니라 FTP 외부 리소스도 올 수 있다.

var 은 리소스가 저장될 변수명

scope 는 var 속성의 범위

varReader 는 var 속성과 마찬가지로 리소스가 저장될 Reader 객체 변수

context 는 URL에 접근할 대 컨텍스트 이름

charEncoding 는 URL 의 리소스를 가져올 때 인코딩 방법

 

<c:redirect>

- 지정된 URL 페이지로 이동시키는 기능을 한다.

 

<c:redirect url="URL값" context = "contextName">

url 은 이동할 URL 을 입력한다.

context 는 컨텍스트 이름을 입력하지만,

보통은 url 속성만 입력한다.

 

<c:url>

- url 을 생성하는 기능을 한다.

 

<c:url var="변수명" scope="범위" value="값" context="contextName">

value 속성에 지정된 값으로 URL을 생성한다.

scope 는 var 속성에 입력되어 있는 변수의 범위를 의미

 

<c:param>

- <c:import> 태그에 파라미터를 전달하기 위한 태그

 

<c:param name="파라미터명" value="값">

name 속성에 파라미터 명을 입력하고,

value 에 값을 입력하여 전달

 

c:import, c:param 적용 예제

 

test.jsp 파일

<c:import url="/exam1.jsp">

   <c:param name="src1" value="www.naver.com" />

   <c:param name="src2" value="www.daum.net" />

</c:import>

 

exam1.jsp 파일

<a href="${param.src1}"> 네이버 바로가기 </a>

<a href="${param.src2}"> 다음 바로가기 </a>

 

 

*servlet으로 보내려면 <c:import url="test/testUrl.do"> 와 같이 컨드롤러에 RequestMapping 되어있는 url로 적어주면 되며 Param 으로 보낸 값은 @RequestParam String src1 와 같이 매핑시켜주면 된다.

 

예제)

TestController.java

@RequestMapping("test/testUrl.do") 

public String urlList(@RequestParam String src1 , @RequestParam String src2, Model model) throws Exception { 

 

    model.addAttribute("src1", src1 ); 

    model.addAttribute("src2", src2 ); 

 

return programUrl + "/exam1.jsp"; 

}

test.jsp

<c:import url="/exam1.jsp">

   <c:param name="src1" value="www.naver.com" />

   <c:param name="src2" value="www.daum.net" />

</c:import>

 

exam1.jsp 

<a href="${src1}"> 네이버 바로가기 </a>

<a href="${src2}"> 다음 바로가기 </a>



출처: https://limeeyojung.tistory.com/2 [초보개발자의 코딩기록]

반응형
Comments