[Java] JSP - 표준 액션 태그(Standard Action Tag)

chael_lo·2021년 8월 29일
1

Java

목록 보기
51/52

표준 액션 태그

Java 명령으로 구현해야 되는 기능을 JSP에서 제공하는 태그로 구현한다.
표준 액션 태그는 [jsp] 네임스페이스를 이용하여 사용한다.

표준 액션 태그 종류

include 태그

현재 JSP 문서에서 다른 JSP 문서로 스레드를 이동하여 실행된 명령의 결과(HTML)를 제공받아 현재 JSP 문서에 포함하는 태그다.

  • JSP 문서의 실행결과를(HTML, CSS, JavaScript) 포함한다.
  • 현재 JSP 문서에서 page 속성값으로 설정된 JSP 문서로 스레드를 이동하여 실행한다.
  • 결과를 가져와 현재 JSP 문서에 포함하여 페이지 구현할 수 있다.
  • page 속성값으로 설정된 JSP 문서가 변경돼도 현재 JSP 문서에는 영향을 미치지 않는다.
  • page 속성값으로 표현식을 사용할 수 있다.
    전달값에 따라 다른 JSP 문서의 실행 결과를 포함한다(동적 포함).
<jsp:include page="JSP"/>
<jsp:include page="JSP"></jsp:include>

Directive의 include(action include와의 비교)

  • 외부파일(JSPF)의 코드를(HTML 태그, Java 명령 등) 포함한다.
  • JSP 문서에 외부파일의 코드를 포함하여 페이지를 구현할 수 있다.
  • 외부파일의 코드가 변경될 경우 JSP 문서가 변경된 것과 동일하므로 서블릿에서 변환이 발생한다.
  • file 속성값으로 표현식(Expression)을 사용 할 수 없다.
    설정된 파일의 코드만 포함할 수 있다(정적 포함).
<%@include file="header.jspf" %>

forward 태그

현재 JSP 문서에서 다른 JSP 문서로 스레드를 이동하여 실행된 명령의 결과(HTML)를 클라이언트에게 전달(응답)하는 태그다.
클라이언트와 상관없이 서버의 웹프로그램에서 이동하며 클라이언트 브라우저의 URL 주소는 변경되지 않는다.

<jsp:forward page="JSP"></jsp:forward> 

page 속성값으로 표현식 사용이 가능하며 태그내용이 없는 경우, 시작태그에 종료태그를 같이 구현한다.

<%
String forwardFilePath="review.jsp";
%>

<jsp:forward page="<%=forwardFilePath %>"/>

리다이렉트 이동(forward 태그의 방식과 반대)
클라이언트에게 URL 주소를 전달하여 웹프로그램을 요청해 응답하는 방식으로
클라이언트 브라우저의 URL 주소 변경한다.

response.sendRedirect("forward_main.jsp");

param 태그

include 태그 또는 forward 태그의 자식태그로 사용하며, 현재 JSP 문서에서 다른 JSP 문서로 스레드를 이동할 경우 값(문자열-String)을 전달하기 위한 태그다.
리퀘스트 메세지 바디에 값을 저장하여 전달한다(POST 방식과 유사).

<!-- footer.jsp에서 master의 값을 받아 사용할 수 있다. -->
<jsp:include page="footer.jsp">
	<jsp:param value="<%=master %>" name="master"/>
</jsp:include>

useBean 태그

JSP 문서에서 인스턴스를 생성하여 내장객체의 속성값으로 저장하거나 내장객체에 저장된 속성값(인스턴스)을 반환받아 사용하는 태그다.
내장객체에 속성값을 저장하거나 반환하는 메소드와 유사한 기능을 제공한다.

  • id 속성(필수)
    반환(생성)되는 인스턴스를 저장하기 위한 이름(변수명)을 속성값으로 설정한다.
    내장객체에 저장된 속성값의 속성명(식별자)으로 사용한다.

  • class 속성(필수)
    반환(생성)되는 인스턴스의 자료형(클래스)를 속성값으로 설정한다.

  • scope속성(선택)
    내장객체에 저장된 속성값의 사용범위을 속성값으로 설정한다.
    page(기본), request, session, application

//javaBean 클래스 사용
<jsp:useBean id="hewon" class="xyz.itwill.bean.Hewon" scope="request"/>

<%-- useBean을 사용하지 않을 경우 --%>
Hewon hewon=new Hewon();
request.setAttribute("hewon", hewon);

setProperty 태그

useBean 태그의 종속 태그이며, useBean 태그에 의해 제공된 인스턴스의 필드값을 변경하는 태그다(Setter 메소드 호출).
JaveBean 클래스의 Setter 메소드를 호출하는 명령과 유사하다.

  • name 속성(필수)
    useBean 태그로 제공되는 인스턴스의 식별자(id 속성값)를 속성값으로 설정한다.
  • property 속성(필드)
    useBean 태그로 제공되는 인스턴스의 필드명을 속성값으로 설정한다.
    필드에 대한 Setter 메소드를 호출하여 인스턴스의 필드값 변경한다.
  • value 속성(선택)
    useBean 태그로 제공되는 인스턴스의 필드에 저장될 값을 속성값으로 설정한다.
    value 속성값이 생략되면 JSP 문서 요청시 전달되는 값을 반환받아 필드값으로 변경한다.
    전달되는 이름(입력태그의 name 속성값)과 property 속성값(필드명)이 동일해야만 전달값을 반환받아 필드값으로 변경할 수 있다.
<jsp:setProperty name="hewon" property="name" value="홍길동"/>

property 속성값을 [*]로 설정한 경우 모든 전달값을 반환받아 필드값을 변경한다.

<jsp:setProperty name="hewon" property="*"/>

getProperty 태그

useBean 태그의 종속 태그이며, useBean 태그에 의해 제공된 인스턴스의 필드값을 반환하는 태그다(Getter 메소드 호출).
JaveBean 클래스의 Getter 메소드를 호출하는 명령과 유사하다.

  • name 속성(필수)
    useBean 태그로 제공되는 인스턴스의 식별자(id 속성값)를 속성값으로 설정한다.
  • property 속성(필드)
    useBean 태그로 제공되는 인스턴스의 필드명을 속성값으로 설정한다.
    필드에 대한 Getter 메소드를 호출하여 인스턴스의 필드값 반환한다.
<jsp:getProperty name="hewon" property="address"/>

함께 알면 좋은 JavaBean 클래스

웹프로그램(JSP 문서)에서 전달값을 저장할 목적의 클래스

  • 전달값의 이름(입력태그의 name 속성값)과 동일한 이름으로 필드 선언
  • public 접근지정자에 매개변수가 없는 생성자 작성
  • 필드값을 반환하는 메소드(Getter)와 필드값을 변경하는 메소드(Setter) 작성
profile
천천히 꾸준히

0개의 댓글