JSP 액션 태그: XML 형식의 태그로, JSP 컨테이너가 특정 동작을 수행하도록 지시.
- <jsp:useBean>: JavaBean 객체를 생성하거나 가져옴.
- <jsp:setProperty>: JavaBean 객체의 속성 값을 설정.
- <jsp:getProperty>: JavaBean 객체의 속성 값을 가져옴.
- <jsp:include>: 다른 페이지(JSP 또는 정적 컨텐츠)를 현재 페이지에 동적으로 포함.
- <jsp:param>: <jsp:include>, <jsp:forward> 등에서 파라미터를 전달.
- <jsp:forward>: 다른 페이지로 요청을 전달(포워딩).
1. <jsp:useBean>
- JavaBean 객체를 생성하거나 이미 생성된 객체를 찾아서 사용.
- 주요 속성:
- id: JavaBean 객체를 참조할 때 사용할 변수 이름 (필수)
- class: JavaBean 클래스의 fully-qualified name (패키지명 포함) (필수)
- scope: JavaBean 객체가 저장될 영역 (page, request, session, application, 기본값: page)
- type: 변수의 타입. class와 함께 사용될 때는, class가 인터페이스이거나 추상클래스인 경우 실제 구현 클래스를 지정.
- 동작 방식:
- 지정된 scope에서 id에 해당하는 JavaBean 객체를 찾음.
- 객체가 존재하면 해당 객체를 사용.
- 객체가 존재하지 않으면, class 속성에 지정된 클래스의 인스턴스를 생성하고 지정된 scope에 저장.
- 예시:
Java
<jsp:useBean id="person" class="com.example.Person" scope="request" />
<%-- 또는 --%>
<jsp:useBean id="myList" class="java.util.ArrayList" scope="session" type="java.util.List" />
2. <jsp:setProperty>
- JavaBean 객체의 프로퍼티(property) 값을 설정. (setter 메서드 호출)
- 주요 속성:
- name: <jsp:useBean>으로 정의한 JavaBean 객체의 id (필수)
- property: 값을 설정할 프로퍼티 이름 (필수)
- value: 설정할 프로퍼티 값 (정적 값 또는 EL 표현식)
- param: 요청 파라미터의 이름을 지정하여 값을 가져옴. value와 함께 사용할 수 없음.
- 예시:
Java
<jsp:useBean id="user" class="com.example.User" />
<jsp:setProperty name="user" property="name" value="홍길동" />
<jsp:setProperty name="user" property="age" value="${param.userAge}" />
<jsp:setProperty name="user" property="email" param="userEmail" />
<%-- 모든 프로퍼티를 요청 파라미터에서 자동으로 설정 (프로퍼티 이름과 파라미터 이름이 같아야 함) --%>
<jsp:setProperty name="user" property="*" />
3. <jsp:getProperty>
- JavaBean 객체의 프로퍼티 값을 가져와 출력. (getter 메서드 호출)
- 주요 속성:
- name: <jsp:useBean>으로 정의한 JavaBean 객체의 id (필수)
- property: 값을 가져올 프로퍼티 이름 (필수)
- <%= ... %> 표현식과 동일하게, 가져온 값을 출력 스트림에 쓴다.
- 예시:
Java
<jsp:useBean id="product" class="com.example.Product" />
<jsp:setProperty name="product" property="name" value="Awesome Gadget" />
<p>Product Name: <jsp:getProperty name="product" property="name" /></p>
<%-- 위 코드는 아래 코드와 동일 --%>
<p>Product Name: <%= product.getName() %></p>
4. <jsp:include>
- 다른 JSP 페이지나 정적 파일의 실행 결과를 현재 페이지에 동적으로 포함. (런타임 포함)
- 주요 속성:
- page: 포함할 페이지의 URL (필수)
- flush: 포함하기 전에 현재 페이지의 출력 버퍼를 flush할지 여부 (true/false, 기본값: false)
- 포함되는 페이지는 별도로 실행되며, request, response 객체를 공유합니다. 변수는 공유되지 않는다.
- 예시:
Java
<jsp:include page="navigation.jsp" />
<jsp:include page="article.jsp" flush="true" />
<jsp:param> (include와 함께 사용):
- <jsp:include>로 포함되는 페이지에 파라미터를 전달
- 주요 속성:
- name: 파라미터 이름
- value: 파라미터 값
- 예시:
Java
<jsp:include page="productDetails.jsp">
<jsp:param name="productId" value="123" />
</jsp:include>
5. <jsp:forward>
- 현재 페이지의 처리를 중단하고, 지정된 다른 페이지로 요청을 전달. (제어권을 완전히 넘김)
- 주요 속성:
- page: 포워딩할 페이지의 URL (필수)
- 브라우저의 주소 표시줄은 변경되지 않는다. (서버 내부에서 이동)
- 예시:
Java
<jsp:forward page="/loginSuccess.jsp" />
<jsp:forward page="errorPage.jsp">
<jsp:param name="errorMessage" value="Invalid input"/>
</jsp:forward>
- <jsp:param> (forward와 함께 사용):
- <jsp:forward>로 전달되는 페이지에 파라미터를 추가.
'개발 > JSP' 카테고리의 다른 글
JSP 내장객체와 주요 매서드 (0) | 2025.03.08 |
---|---|
<%@ include %> vs <jsp:include > (0) | 2025.03.08 |
JSP 지시어와 스크립트 요소 (0) | 2025.03.08 |
JSP는 어떻게 작동할까? (0) | 2025.03.08 |
JSP - EL(Expression Language) (0) | 2025.03.05 |