자바빈 JavaBean 또는 DTO, Data Transfer Object
자바로 작성된 컴포넌트 클래스이다. DTO 클래스라고도 부른다.
폼데이터 처리에 용이하다. 폼에서 넘어오는 많은 데이터를 자바빈에 저장하고, 전달할 수 있다.
또, 여러 JSP 파일에서 사용 가능하고, 컴포넌트 기반 구현이다.
JSP, DTO, DAO 클래스가 분리되어 각 컴포넌트 별로 기능을 수행한다.
자바빈 작성법
경로는 프로젝트 폴더 > Java Resources > src 이다.
대소문자에 유의하며 패키지와 클래스를 생성한다.
메인 메소드는 생성하지 않는다. 자바 가상머신으로 실행하는것이 아니기 때문이다.
package javaBean;
public class SimpleBean {
private String msg; // 프로퍼티
public String getMsg() {
return msg;
}
public void setMsg (String msg) {
this.msg = msg ;
}
}
자바에서는 필드라고 부르는 private String msg; 를 자바빈 용어로는 프로퍼티라고 부른다.
접근 제어자는 일반적으로 private으로 설정한다.
그렇기 때문에 저장할 때에는 setXxx 메소드, 저장된 값을 불러올때는 getXxx 메소드를 사용한다.
이 때 Xxx는 프로퍼티 명으로 작성하고, 첫 글자는 대문자로 작성한다.
get-set 메소드의 접근 제어자는 public으로 설정한다.
실행할 페이지의 코드이다.
메시지 박스의 name 값은 "msg" 이고, 여기서 입력받은 값을 simpleBean.jsp로 전달할 예정이다.
가장 먼저 작성해야 할 태그는 useBean 이다.
패키지와 클래스명, 즉 경로를 가장 먼저 설정한다.
그리고 "sb"라는 이름의 객체를 생성한다.
<jsp:useBean id="sb" class="javaBean.SimpleBean" />
( id : 생성될 자바빈 객체의 이름을 명시
class : 객체가 생성될 자바빈 클래스명 (패키지명을 포함, 대소문자를 구분하여 클래스의 풀네임 기술. 확장자는x
scope : 자바빈 객체의 유효 범위로 공유되는 범위를 지정한다.
속성값으로는 page, request, session, application을 가지며, 생략시 기본값으로 page로 지정된다.)
이 코드는 simpleBean sb = new simpleBean(); 과 같다.
자바빈은 java Resources-src 폴더에 따로 생성하므로
객체를 생성한다면, import도 해야 한다.
<% page import = "javaBean.SimpleBean(); %>
<% simpleBean sb = new simpleBean(); %>
=
<jsp:useBean id="sb" class="javaBean.SimpleBean" />
하지만 private 접근 제어자 때문에 값을 불러올 수가 없다.
그래서 setMsg(); 를 통해 값을 불러온다.
이 setMsg(); 의 역할을 setProperty 태그가 한다.
<jsp:setProperty name="sb" property="msg" />
( name : 자바빈 객체의 이름을 명시
property : 프로퍼티명을 명시
value : 폼에서 넘어오지 않는 값은 value로 별도 지정 )
그리고 출력은 getProperty로 한다.
<jsp:getProperty name="sb" property="msg" />
한 눈에 보기 쉽게 설명하자면 다음과 같다.
이렇게 getProperty 방식을 쓴다면 폼하나당 getProperty도 하나씩 늘려야 하기 때문에
만약 폼이 100개가 있다면 getProperty도 100개가 필요하다.
당연히 get-set 메소드도 그만큼이 필요한데,
이걸 한꺼번에 가져올 수 있는 방법이 있다.
property의 이름을 일일히 쓰지 않고 *로 처리하는 것이다.
같은 SimpleBean.java 내에 생성된 프로퍼티여야 한다.
<jsp:setProperty name="sb" property="msg" />
<jsp:setProperty name="sb" property="*" />
자바빈 관련 액션 태그
<jsp:useBean id=" " class=" " scope=" " /> | 자바빈 객체 생성 |
<jsp:setProperty name=" " property=" " value=" " /> | 생성된 자바빈 객체에 프로퍼티 값을 저장 |
<jsp:getProperty name=" " property=" " /> | 생성된 자바빈 객체에 저장된 프로퍼티 값을 불러옴 |
'JSP' 카테고리의 다른 글
JSP와 데이터베이스 연동 (0) | 2022.09.01 |
---|---|
액션 태그 - forward, include (0) | 2022.08.29 |
JSP의 에러 처리 (0) | 2022.08.29 |
간단한 '로그인 - 상품 목록 - 장바구니 - 계산 세션' 생성 (0) | 2022.08.29 |
세션 (Session) (0) | 2022.08.26 |