Action tag (액션 태그)
- 액션 태그는 페이지간 이동, 페이지 삽입, 객체 생성 등의 기능을 포함하고 있다
- <% %>와 같은 스크립트 태그 형식이 아닌 <jsp: />의 XML형식을 사용한다
액션 태그 | 형식 | 설명 |
forward | <jsp: forward /> | 다른 페이지로 이동 |
include | </jsp: include /> | 외부 페이지 내용 포함 또는 모듈화 |
useBean | </jsp: useBean /> | JSP 페이지에 객체를 생성한다 |
setProperty | </jsp: setProperty /> | 객체의 프로퍼티 값을 설정 |
getProperty | </jsp: getProperty /> | 객체의 프로퍼티 값을 가져온다 |
param | </jsp:param /> | forward, include 태그에 파라미터를 추가한다 |
forward 액션 태그
- 현재 JSP 페이지에서 다른 페이지로 이동하는 태그
- 다만 이동할 때 버퍼에 있는 내용을 flush 하기 때문에 이전까지 생성된 HTML 코드는 버려진다
- 따라서 웹페이지가 무겁다면 forward 액션 태그 사용을 신중히 해야한다
<jsp: forward page = "forward.jsp" />
include 액션 태그
- 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그로 HTML, JSP, Servlet 등을 포함할 수 있다
- page와 flush 속성을 가지고 있으며 page에는 파일명을, flush에는 flush 속성을 넣으면 된다
- flush 속성이 true면 외부 파일을 포함하기 전까지의 버퍼를 비우고 출력을 하며 false면 출력하지 않는다
구분 | include 액션 태그 | include 디렉티브 태그 |
포함하는 시점 | 태그가 실행 될 때 | 컴파일이 완료 됐을 때 |
기능 | include 할 파일의 실행 결과를 포함 | include 할 파일의 코드를 포함 |
데이터 전달 방법 | request 객체나 param 액션 태그 | 스크립트 태그로 데이터를 전달 |
용도 | 화면 레이아웃의 일부분을 모듈화 할 때 | 다수의 JSP 웹 페이지에서 공통으로 사용되는 코드나 저작권과 같은 문장을 포함하는 경우 |
기타 | 동적 페이지에 사용 | 정적 페이지에 사용 |
<jsp:include page="include_date.jsp" flush="true"> </jsp:include>
param 액션 태그
- 현재 JSP 페이지에서 다른 페이지로 정보를 전달할 때 사용하는 태그
- include 액션 태그, forward 액션 태그와 함께 사용해 다른 페이지에 파라미터 전달
- 보낼 때는 <jsp: param name="매개변수명" value ="매개변수 값" /> 받을 때는 request.getParameter("매개변수명")
- key-value 형태로 사용된다
- 기본적으로 전달 방식은 POST 방식이다
param으로 정보 전달하기
<jsp:include page = "param02_data.jsp">
<jsp:param value='<%= java.net.URLEncoder.encode("오늘의 날짜와 시각") %>' name="title"/>
<jsp:param value='<%= java.util.Calendar.getInstance().getTime().toLocaleString() %>' name="date"/>
</jsp:include>
전달 받은 정보 사용하기
<body>
<%
String title = request.getParameter("title");
%>
<h3><%= java.net.URLDecoder.decode(title) %></h3>
Today is :<%= request.getParameter("date") %>
</body>
자바빈즈 액션 태그
- JSP 페이지에서 Java 클래스를 생성할 수 있도록 하는 태그
- 자바빈즈를 통해 JSP 파일과 Java 클래스 코드를 별도로 분리해 코드를 재사용하거나 관리하는데 장점이 있다
- 자바빈즈는 property와 method로 구성되는데 쉽게 말해 멤버 변수(전역 변수)와 메서드로 이루어진 형태다
- 자바빈즈를 사용하기 위해서 java.io.serializable 인터페이스를 import 해야 한다
- 자바빈즈의 멤버 변수는 반드시 private으로 접근지정자를 설정해야한다 (캡슐화)
useBean
- 작성한 자바빈즈 클래스를 JSP 페이지에서 생성/초기화하는 태그
- id(참조변수), class(클래스 이름), scope(범위) 속성을 가지고 있다
- 만약 <jsp:useBean id="date" class="java.util.Date" />라는 태그가 있다하면 여기에 대치되는 java 코드는
Date date = (Date) request.getAttribute("date"); 가 될 것이다.
- scope의 기본값은 page지만 request(1회), session(다회), application(서버 소멸 까지) 중 하나를 선택할 수도 있다
Calculator라는 클래스를 참조하는 JSP 페이지를 만들어보자
public class Calculator
{
public int process(int n)
{
return n*n*n;
}
}
인수를 3번 곱하는 메서드를 가지고 있는 Calculator클래스
<body>
<jsp:useBean id="bean" class= "chapter04.Calculator" />
<%
int m= bean.process(5);
out.print("5의 3제곱 : " + m);
%>
</body>
Calculator 클래스를 참조해 메서드를 활용하는 JSP코드
setProperty
- 참조한 클래스의 setter() 메서드에 접근해 멤버 변수를 저장하는 태그다
-
<jsp:setProperty name="member" property ="id" value="admin" />
getProperty
'웹프로그래밍 > JSP' 카테고리의 다른 글
JSP - 내장 객체 (0) | 2024.10.14 |
---|---|
JSP - 디렉티브 태그 (0) | 2024.10.10 |
JSP - 스크립트 태그 (0) | 2024.10.08 |
JSP - 기초 (0) | 2024.10.07 |