액션태그

액션태그는 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그이다.
또한, 액션 태그는 JSP 페이지에서 페이지와 페이지 사이를 제어하거나, 다른 페이지의 실행 결과 내용을 현제 페이지에 포함하거나, 자바빈즈(JavaBeans) 등의 다양한 기능을 제공한다.
액션 태그에는 다양한 종류가 있으며, XML 형식 <jsp: ··· />를 사용한다.
액션태그는 반드시 끝나는 태그 />로 마무리해야한다.
액션태그는 스크립트 태그와 마찬가지로 JSP 페이지에서 자바코드를 삽입할 수 있는 태그이다.
그렇기에, JSP 페이지를 작성할 때, 자바 코드의 삽입을 되로록 최소화하여 유지 보수를 효율적으로 하는 것이 목적이다.

액션태그의 종류

액션 태그 형식 설명
forward <jsp:forward ···/> 다른 페이지로의 이동과 같은 페이지 흐름을 제어한다.
include <jsp:include ···/> 외부 페이지의 내용을 포함하거나 페이지를 모듈화한다.
useBean <jsp:useBean ···/> JSP 페이지에 자바빈즈를 설정한다.
setProperty <jsp:setProperty ···/> 자바빈즈의 프로퍼티 값을 설정한다.
getProperty <jsp:getProperty ···/> 자바빈즈의 프로퍼티 값을 얻어온다.
param <jsp:param ···/> <jsp: forward>, <jsp: include>, <jsp: plugin> 태그에 인자를 추가한다.
plugin <jsp:plugin ···/> 웹 브라우저에 자바 애플릿을 실행한다.
자바 플러그인에 대한 OBJECT 또는 EMBED 태그를 만드는 브라우저별 코드를 생성한다.
element <jsp:element ···/> 동적 XML 요소를 설정한다.
attribute <jsp:attribute ···/> 동적으로 정의된 XML 요소의 속성을 설정한다.
body <jsp:body ···/> 동적으로 정의된 XML 요소의 몸체를 설정한다.
text <jsp:text ···/> JSP 페이지 및 문서에서 템플릿 텍스트를 작성한다.

foward 액션 태그의 형태

<jsp:forward page="파일명" />
or
<jsp:forward page="파일명">    </jsp:forward>

forward 액션 태그의 기능

forward 액션 태그는 현재 JSP 페이지에서 다른 JSP 페이지로 이동하는 태그이다.
JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면 그 전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제한다.
forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동한다.

forward 액션 태그의 특징

forward 액션태그가 선언된 지점 이전까지 생성된 HTML 코드가 손실된다.
그러나 이미 전달 버퍼로 채워진 경우에는 전달이 중단될 때까지 해당 내용을 웹 서버에 응답으로 보낸다.
이런 경우에는 잘못된 페이지가 클라이언트로 전송될 수 있다.

include 액션 태그의 형태

<jsp:include Page="파일명" flush="false"/>

include 액션 태그의 기능

include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그이다.
포함할 수 있는 외부파일은 HTML, JSP, 서블릿 페이지 등이다.

include 액션 태그의 특징

flush 속성 값은 설정한 외부 파일로 제어가 이동할 때, 현재 JSP 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리한다.
기본 값은 false이고, true로 설정하면 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 직므까지 출력 버퍼에 저장된 내용을 웹 브라우저에 출력하고 출력 버퍼를 비운다.
include 액션 태그는 forward태그와 다르게, 외부 파일이 실행된 후 현재 JSP 페이지로 제어를 반환한다.
또한, JSP 컨테이너는 현재 JSP 페이지에서 include 액션 태그를 만나면 include 액션 태그에 설정된 외부 파일의 실행 내용이 현재 JSP 페이지의 출력 버퍼에 추가 저장되어 출력되어진다.

include 액션 태그와 include 디렉티브 태그의 차이

구분 include 액션 태그 include 디렉티브 태그
처리 시간 요청 시 자원을 포함 번역 시 자원을 포함
기능 별도의 파일로 요청 처리 흐름을 이동 현재 페이지에 삽입
데이터
전달방법
request 기본 내장 객체나
param 액션 태그를 이용하여 파라미터를 전달
페이지 내의 변수를 선언한 후 변수에 값을 저장
용도 화면 레이아웃의 일부분을 모듈화할 때 주로 사용 다수의 JSP 웹 페이지에서 공통으로 사용되는 코드나
저작권과 같은 문장을 포함하는 경우에 사용
기타 동적 페이지에 사용 정적 페이지에 사용

param 액션 태그의 형태

<jsp:forward page="파일명">
    <jsp:param name="매개변수명1" value"매개변수값1"  />
    [    <jsp:param name="매개변수명2" value"매개변수값2" ··· />]
</jsp:forward>

param 액션 태그의 기능

param 액션 태그는 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그이다.

param 액션 태그의 특징

단독으로 사용하지 못하며, <jsp:forward>나 <jsp:include> 태그의 내부에 사용된다.
또한, 다른 페이지에 여러 개의 정보를 전송해야할 때는 다중의 param 액션 태그도 사용가능하다.

useBean 액션 태그의 형태

<jsp:useBean id="자바빈즈 식별이름" class="자바빈즈 이름" scope="범위" />

useBean 액션 태그의 기능

useBean 액션 태그는 JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그이다.

useBean 액션 태그의 속성

속성 설명
id 자바빈즈를 식별하기 위한 이름
class 패키지 이름을 포함한 자바빈즈 이름이다.
자바빈즈는 인수가 없는 기존 생성자가 있어야 하며, 추상클래스를 사용할 수 없다.
scope 자바빈즈가 저장되는 영역을 설정한다.
page( 기본 값), request, session, application 중 하나의 값을 사용한다.

setProperty 액션 태그의 형태

<jsp:setProperty name="자바빈즈 식별이름" property="프로퍼티 이름" value="값" />

setProperty 액션 태그의 기능

setProperty 액션 태그는 useBean 액션 태그와 함께 자바빈즈의 Setter() 메소드에 접근하여 자바빈즈의 멤버 변수인 프로피티의 값을 저장하는 태그이다.
setProperty 액션 태그는 폼 페이지로부터 전달되는 요청 파라미터의 값을 직접 저장하거나 자바빈즈의 프로퍼티로 변경하여 값을 저장할 수 있다.
또는 모든 자바빈즈 프로퍼티 이름과 동일하게 요청 파리미터를 설정할 수 있다.

setProperty 액션 태그의 속성

속성 설명
name useBean 태그에 id 속성 값으로 설정된 자바빈즈를 식별하기 위한 이름이다.
property 자바빈즈의 프로퍼티 이름이다.
만약 프로퍼티 이름에 '*'를 사용하면 모든 요청 파라미터가 자바빈즈 프로퍼티의 Setter() 메소드에 전달됨을 의미한다.
value 변경할 자바빈즈의 프로퍼티 값이다.
만약 프로퍼티 값이 null이거나 존재하지 않는 요청 파라미터인 경우에는 SetProperty 액션태그가 무시된다.
param 자바빈즈의 프로퍼티 값을 전달하는 요청 파라미터의 이름이다.
param과 value를 모두 사용할 수 없으며, 하나를 선택하여 사용하는 것은 가능하다.
  • 요청 파라미터 이름과 자바빈즈의 프로퍼티 이름이 일치하는 경우

    // 폼 페이지
    <form action="memberProcess.jsp" method="post">
        <input name="id" value="admin" />
    </form>
    // JSP 페이지
    <jsp:setProperty name="member" property="id" />
  • 요청 파라미터 이름과 자바빈즈의 프로퍼티 이름이 일치하지 않는 경우 (모든 요청 파라미터 이름 = 모든 프로퍼티 이름)

    // 폼페이지
    <form action="memberProcess.jsp" method="post">
        <input name="id" value="admin" />
    </form>
    // JSP 페이지
    <jsp:setProperty name="member" property="*" />

getProperty 액션 태그의 형태

<jsp:getProperty name="자바빈즈 식별이름" property="프로퍼티 이름" />

getProperty 액션 태그의 기능

getProperty 액션 태그는 useBean 액션 태그와 함께 자바빈즈의 Getter() 메소드에 접근하여 자바빈즈의 멤버 변수인 프로피티의 값을 가져오는 태그이다.

getProperty 액션 태그의 속성

속성 설명
name useBean 태그에 id 속성 값으로 설정된 자바빈즈를 식별하기 위한 이름이다.
property 자바빈즈의 프로퍼티 이름이다.
만약 프로퍼티 이름에 '*'를 사용하면, 모든 요청 파라미터가 자바빈즈 프로퍼티의 Getter() 메소드에 전달됨을 의미한다.

'Java, Spring > 개념정리' 카테고리의 다른 글

DI, IoC, Container  (0) 2023.01.10
관심사의 분리, MVC 패턴  (0) 2022.08.21
디렉티브 태그  (0) 2022.08.15
스크립트태그  (0) 2022.08.15
웹 프로그래밍과 JSP  (0) 2022.08.13

+ Recent posts