JSP(JavaServer Page)

JSP(JavaServer Page) - 12 : JSP와 자바 빈즈 연동, JSP에서의 자바 빈즈 선언

n.han 2016. 7. 27. 23:17

- JSP와 자바 빈즈 연동, JSP에서 자바 빈즈 선언


1. JSP와 빈즈 연동


JSP 빈즈는 JSP에서 사용할 수 있는 자바 컴포넌트로, 빈즈 액션과 결합해서 웹 프로그램을 더 간편하고 단순한 구조로 처리할 수 있다.


자바 빈즈는 MVC 아키텍쳐에서 Model 부분을 담당한다.


자바 빈즈(Model)는 일반적으로 데이터 매핑이 일어나는 DO(Data Object)클래스와


데이터의 I/O, 처리 및 가공을 하는 DAO(Data Access Object)클래스로  분리해서 구현한다.


2. 빈즈 클래스 구조


자바 빈즈는 Enterprise 자바 빈즈와 일반적인 자바 빈즈로 나뉜다. 다음은 일반적인 빈즈 클래스의 규칙을 정리한 내용이다.


1) 멤버 변수는 private


2) getter, setter (get변수이름, camelCase)


3) 디폴트 생성자 필요 (JSP에서 빈즈 객체을 자동으로 생성할 때 디폴트 생성자를 호출하므로)


3. JSP에서의 자바 빈즈 선언


JSP에서 빈즈를 사용하는 방법은 다음과 같다.


<jsp:useBean id="객체 이름" class="패키지 포함 빈즈 클래스 이름" scope="스콥 이름"/>


id는 빈즈 클랫의 인스턴스 이름으로 사용할 변수를 나타내며, class는 클래스 이름으로 패키지 경로를 포함한다.


마지막으로 scope은 빈즈 클래스의 범위로, page, request, session, application이 올 수 있다.


4. JSP에서 빈즈 속성 설정


JSP에서 빈즈를 선언한 후, setProperty와 getProperty 액션을 통하여 빈즈 값을 설정하고 가져올 수 있다.


1) setProperty()


<jsp:setProperty name="객체 이름" property="멤버 변수 이름"/>


setProperty 액션은 name의 값에 해당하는 빈즈 객체의 property 값에 해당하는 멤버 변수 이름과


같은 request에 포함된 파라미터 이름의 값으로 빈즈 객체의 멤버 변수 값을 설정한다.(정확히는 그 멤버 변수의 setter함수를 호출한다)


따라서 멤버 변수의 이름과 request의 파라미터 이름이 같아야 한다.


또한 property 속성에 "*"를 줄 수 있는데, 이는 모든 HTML 폼 양식 항목과 빈즈 클래스 set 메서드를 대응 시키는 방법이다.


2) getProperty()


<jsp:getProperty name="객체 이름" property="멤버 변수 이름"/>


빈즈에서 설정되어 있는 JSP 멤버 변수의 값을 HTML로 return한다. set과 달리 *를 사용할 수 없다.