[JSP] 액션 태그(Action Tag)

hiyayeah·2023년 1월 8일
0

JSP

목록 보기
8/8

1. 액션 태그(Action Tag)란?

  • JSP 페이지 내에서 자바 코드를 직접 사용하지 않고 XML 형식의 태그 문법을 활용하여 동일한 작업을 수행하도록 하는 태그(기능)
  • <jsp:액션태그명 속성명="값" /> 형태로 사용
  • 태그 사이에 다른 태그를 포함해야하는 경우 끝 태그(</jsp:액션태그명>)를 사용해야함
    → 주의! 반드시 끝에 끝태그 또는 끝 표시(/) 를 포함해야함
  • 액션 태그명 : forward, include, useBean, setProperty 등

2-1. forward 액션 태그

  • pageContext 객체의 forward() 메서드와 동일한 기능을 제공하는 액션 태그. 즉, 페이지 이동(포워딩) 처리를 수행하는 액션 태그

  • 현재 페이지의 request 객체를 그대로 유지하여 페이지 이동 수행

    → 주소표시줄의 URL(주소)이 그대로 유지되며, request 객체에 저장된 데이터가 유지됨 (= Dispatcher 방식 포워딩)

  • 워딩 시 전달하는 데이터는 주소(URL) 뒤에 파라미터 형식으로 붙여서 전달하거나 (ex. forwardPro.jsp?id=admin)
    <jsp:param> 태그를 사용하여 데이터를 포함시켜 전달 가능 (= form 태그에서 <input type="hidden"> 과 동일한 역할 수행)
    → 전달되는 데이터는 GET 방식이라 하더라도 URL 에 파라미터가 노출되지 않는다!

  • 기본문법

<jsp:forward page="포워딩 할 페이지 또는 파일" />

// 또는

<jsp:forward page="포워딩 할 페이지 또는 파일">
   	<jsp:param name="파라미터명1" value="데이터1" />
   	<jsp:param name="파라미터명n" value="데이터n" />
</jsp:forward>

<!-- forward 액션 태그로 forwardPro2.jsp 페이지로 포워딩 작업 수행 -->
<%-- 	<jsp:forward page="forwardPro2.jsp"/> --%>
<%-- 	<jsp:forward page="forwardPro2.jsp?num=100"/> --%>
  • jsp:param 태그를 사용하여 파라미터 전송
<!-- 만약, 데이터가 자바 변수에 저장되어 있을 경우 데이터 부분에 표현식을 통해 변수 지정 -->

<jsp:forward page="forwardPro2.jsp">
		<jsp:param name="num" value="<%=num %>"/>
		<jsp:param name="str" value="forward 액션 태그의 param 데이터"/>
</jsp:forward>
  • request.setCharacterEncoding("UTF-8");
    - 이전페이지에서 forward 액션태그(또는 pageContext.forward())로 포워딩 할 경우
    기존의 request 객체가 그대로 유지됨
    - 따라서, 폼파라미터로 전달받은 데이터를 그대로 사용할 수 있다! (GET / POST 방식 무관)
    → request 객체가 유지되므로 이전 페이지에서 설정한 인코딩 방식도 그대로 유지됨
    - 따라서, 이전 페이지에서 한글 파라미터가 정상적으로 표시됐다면 현재 페이지에서도 별도의 설정 없이 한글 데이터가 깨지지 않고 정상적으로 표시된다.

2-2. include 액션 태그

  • 현재 페이지에 특정 페이지를 포함(include) 시키는 용도의 액션 태그

  • page 속성에 지정된 페이지로 제어권이 일시적으로 넘어간 후 해당 페이지에서 작업이 끝나면 다시 원래 페이지(현재 페이지)로 제어권이 돌아옴

    → 결국, forward 액션 태그는 포워딩 된 후 그 위치에서 이전으로 돌아가지 않지만 include 액션 태그는 포워딩 작업 후 다시 원래 위치로 결과화면을 가지고 돌아감

  • forward 액션 태그와 마찬가지로 파라미터 전달 시 jsp:param 태그 사용

  • 기본문법

<!-- jsp:forward 액션태그로 includeTest2.jsp 페이지 지정할 경우 -->
	<!-- includeTest2.jsp 페이지로 이동함 -->
<%-- 	<jsp:forward page="includeTest2.jsp"></jsp:forward> --%>

	<!-- jsp:include 액션태그로 includeTest2.jsp 페이지 지정할 경우 -->
	<!-- includeTest2.jsp 페이지의 내용을 현재 페이지에 포함시킴(= 출력함) -->
<%-- 	<jsp:include page="includeTest2.jsp"/> --%>

	<!-- includeTest2.jsp 페이지로 파라미터값 전달할 경우 -->
	<jsp:include page="includeTest2.jsp">
		<jsp:param name="paramValue" value="Parameter Value"/>
	</jsp:include>

0개의 댓글