JSP 액션태그

2025. 3. 8. 21:33·개발/JSP

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가 인터페이스이거나 추상클래스인 경우 실제 구현 클래스를 지정.
  • 동작 방식:
    1. 지정된 scope에서 id에 해당하는 JavaBean 객체를 찾음.
    2. 객체가 존재하면 해당 객체를 사용.
    3. 객체가 존재하지 않으면, 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
'개발/JSP' 카테고리의 다른 글
  • JSP 내장객체와 주요 매서드
  • <%@ include %> vs <jsp:include >
  • JSP 지시어와 스크립트 요소
  • JSP는 어떻게 작동할까?
함수형 인간
함수형 인간
잘 까먹는 개발자의 두뇌 확장 장치
  • 함수형 인간
    개발 기록 노트
    함수형 인간
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 글 목록 (84)
      • 기타 (1)
      • 개발 (82)
        • Java (6)
        • Javascript (1)
        • Spring (20)
        • jQuery (0)
        • Git (0)
        • servlet (11)
        • JSP (6)
        • HTML (0)
        • CSS (10)
        • SQL (9)
        • JSTL (3)
        • Mybatis (4)
        • Design Patterns (0)
        • HTTP (2)
        • Devtools (0)
        • IntelliJ (5)
        • JDBC (1)
        • Lombok (3)
        • Logging (1)
      • 책 리뷰 (0)
  • hELLO· Designed By정상우.v4.10.3
함수형 인간
JSP 액션태그
상단으로

티스토리툴바