JSP의 useBean 액션은 매우 유용한 기능입니다. 이 액션은 먼저 지정된 id와 scope 속성을 기준으로 기존에 존재하는 객체를 검색하고, 해당 객체가 존재하지 않으면 새로 생성하려고 시도합니다.
기본 사용법
빈(Bean)을 로드하는 가장 간단한 방법은 다음과 같습니다.
<jsp:useBean id = "name" class = "package.class" />
빈 클래스가 한 번 로드되면 jsp:setProperty와 jsp:getProperty 액션을 사용하여 빈의 속성값을 수정하거나 조회할 수 있습니다.
useBean 액션의 주요 속성
다음 표는 useBean 액션과 함께 사용되는 주요 속성들을 정리한 것입니다.
| 번호 | 속성 및 설명 |
|---|---|
| 1 | class 빈의 전체 패키지 이름을 지정합니다. |
| 2 | type 객체를 참조할 변수의 타입을 지정합니다. |
| 3 | beanName java.beans.Beans 클래스의 instantiate() 메서드에서 사용할 빈의 이름을 지정합니다. |
실습 예제
예제에서 사용할 테스트 빈(TestBean)을 먼저 정의해 보겠습니다.
/* 파일명: TestBean.java */
package action;
public class TestBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}위 코드를 컴파일하여 생성된 TestBean.class 파일을 C:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\action 폴더에 복사하고, CLASSPATH 환경 변수도 해당 폴더를 가리키도록 설정해야 합니다.
이제 main.jsp 파일에 아래 코드를 작성합니다. 이 코드는 빈을 로드한 후 문자열 파라미터를 설정(set)하고 가져오는(get) 과정을 보여줍니다.
<html> <head> <title>JSP에서 JavaBeans 사용하기</title> </head> <body> <center> <h2>JSP에서 JavaBeans 사용하기</h2> <jsp:useBean id = "test" class = "action.TestBean" /> <jsp:setProperty name = "test" property = "message" value = "Hello JSP..." /> <p>메시지를 가져왔습니다....</p> <jsp:getProperty name = "test" property = "message" /> </center> </body> </html>
이제 브라우저에서 main.jsp에 접속하면 다음과 같은 결과가 출력됩니다.
실행 결과
메시지를 가져왔습니다.... Hello JSP...
이처럼 jsp:useBean 액션을 활용하면 JSP 페이지에서 자바 객체를 손쉽게 재사용할 수 있으며, setProperty와 getProperty 액션과 함께 사용하면 뷰와 비즈니스 로직을 깔끔하게 분리하는 구조를 만들 수 있습니다.