JSP

[JAVA] 4. JSA 액션 태그

leui 2022. 4. 24. 23:26

액션 태그는 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그이다. 액션 태그는 페이지와 페이지 사이를 제어하거나, 다른 페이지의 실행 결과 내용을 현재 페이지에 포함하거나, 자바 빈즈(Java Beans) 등의 다양한 기능을 제공한다.

액션 태그는 <% %>와 같은 스크립트 태그의 형식을 따르지 않고 <jsp: ... /> 사용한다.

 

액션 태그 종류

 

- forward 액션 태그

forward 액션 태그는 현재 JSP 페이지에서 다른 페이지로 이동하는 태그이다.

 

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

* forward 액션 태그를 수행할 때, 출력 버퍼를 지우기 때문에 forward가 선언된 지점 이전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제하고 forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동



- include 액션 태그

include 액션 태그는 include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부파일의 내용을 포함하는 태그이다.

(HTML, JSP, 서블릿 페이지 등)

<jsp:include page="파일.jsp" flush="false" />​


include 액션 태그는 forward 액션 태그처럼 외부 파일을 포함한다는 점이 비슷하지만 포함된 외부 파일이 실행된 후 현재 JSP 페이지로 제어를 반환한다는 것이 가장 큰 차이점이다. 또한 JSP 컨테이너는 include 액션 태그를 만나면 include 액션 태그에 설정된 외부 파일의 실행 내용이 현재 JSP 페이지의 출력 버퍼에 추가 저장된다.


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

 

 


- param 액션 태그

param 액션 태그는 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그이다. 단독으로 사용되지 못하며 <jsp:forward>, 나 <jsp:include> 태그 내부에 사용

 

<jsp:forward page="파일 이름.jsp">
	<jsp:param name="name1" value="value1">
    <jsp:param name="name2" value="value2">
    ...
</jsp:forward>

 

* 다른 페이지에서 param으로 넘어온 데이터를 받을 때는 request.getPrameter("key1") 함수로 받음

 

- JavaBeans 액션 태그의 기능과 사용법

프로그램의 효율을 높이기 위해 화면을 출력하는 부분과 데이터를 처리하는 로직 부분을 구분하여 작성하며, 로직 부분의 코드에 자바빈즈라는 클래스를 사용한다.

 

*  자바빈즈를 작성할 때 규칙
1. 자바 클래스는 java.io.Serializable 인터페이스를 구현해야 함
2. 인수가 없는 기본 생성자가 있어야 함
3. 모든 멤버 변수인 프로퍼티는 private 접근 지정자로 설정해야 함
4. 모든 멤버 변수인 프로퍼티는 getter/setter( ) 메소드가 존재해야 함

 

자바빈즈 규칙

 

ㄴ useBean 액션 태그로 자바빈즈 사용하기

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

useBean 액션 태그는 설정된 id 속성과 scope 속성을 바탕으로 자바빈즈의 객체를 검색하고, 발견되지 않으면 빈 객체를  생성한다.

 

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

<%-- useBean 액션 태그 사용 예 --%>
<jsp:useBean id="member" class="com.dto.MemberBean" scope="page" />

 

 

ㄴ setProperty 액션태그

useBean 액션 태그와 함께 자바빈즈의 setter() 메소드에 접근하여 자바빈즈의 맴버 변수인 프로퍼티의 값을 저장하는 태그이다.

 

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

 

ㄴ getProperty 액션 태그

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

 

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