Java/jdbc

jsp와 java beans

blackbearwow 2022. 5. 26. 13:50

빈즈는 form태그에서 전달한것을 쉽게 처리하기 위해 있는 것이다.

 

1. 빈즈 클래스 구조

class xxxBean {
    // 멤버변수 : 데이터베이스 테이블의 칼럼 이름과 매칭된다.
    private String xxx;
    // get, set 메서드 : 멤버변수와 매칭된다.
    public String getXxx() {
        return xxx;
    }
    public setXxx(String xxx) {
        this.xxx = xxx;
    }
}

2. 빈즈 액션

액션 사용 예 기능
useBean <jsp:useBean scope="page" id="cls" class="xx.MyBean" /> xx패키지의 MyBean 클래스를 cls라는 이름으로 page 번위에서 사용할 것을 선언한다.
setProperty <jsp:setProperty name="cls" property="xxx" /> useBean으로 선언된 빈즈 클래스의 setxxx()메서드를 호출한다.
getProperty <jsp:getProperty name="cls" property="xxx" /> useBean으로 선언된 빈즈 클래스의 getxxx() 메서드를 호출한다.

3. 빈즈 선언

<jsp:useBean id="mybean" scope="request" class="MyBean" />

액션 속성 설명  
useBean id 빈즈 클래스의 이름으로 사용할 변수다.
class 빈즈 클래스의 클래스 이름으로, 패키지 경로를 포함한다.
scope 빈즈 클래스의 범위로 page, request, session, application이 올 수 있다.

useBean 액션의 자바 코드 변환: 

//<jsp:useBean id="mybean" scope="request" class="MyBean" />
MyBean My Bean = (MyBean)request.getAttribute("mybean");
if(mybean == null) {
    mybean = new MyBean();
    request.setAttribute("mybean", mybean);
}
//<jsp:useBean id="mybean" scope="page" class="MyBean" />
<%
MyBean mybean = new MyBean();
%>

4. 빈즈 속성 설정

<jsp:setProperty name="mybean" property="username" />

<jsp:setProperty name="mybean" property="userpasswd" />

<jsp:setProperty name="mybean" property="*" />

액션 속성 설명  
setProperty name 빈즈 클래스의 인스턴스 이름으로, id 값에 설정했던 변수 이름이다.
property 속성 값으로 빈즈 클래스의 setXxx 메서드와 매칭될 속성 값이다. *를 지정하면 모든 setXxx에 자동으로 매칭된다.

setProperty 액션의 자바 코드 변환:

//<jsp:setProperty name="mybean" property="username" />
//<jsp:setProperty name="mybean" property="userpasswd" />
<%
    mybean.setUsername(request.getParameter("username"));
    mybean.setPasswd(request.getParameter("userpasswd"));
%>

5. 빈즈에서 속성 데이터 가져오기

<jsp:getProperty name="mybean" property="username" />

<jsp:getProperty name="mybean" property="userpasswd" />

액션 속성 설명  
getProperty name 빈즈 클래스의 인스턴스 이름으로, id 값에 설정했던 변수 이름이다.
property 속성 값으로 빈즈 클래스의 getXxx 메서드와 매칭될 속성 값이다.

getProperty 액션의 자바 코드 변환:

//<TD><jsp:getProperty name="mybean" property="username" /></TD></TR>
<TD><%= mybean.getUsername() %></TD></TR>