자바빈은 속성(데이터), 변경 이벤트, 객체 직렬화를 위한 표준어 입니다. 이 중에서 JSP에서는 속성을 표현하기 위한 용도로 사용됩니다. 다음은 자자빈 규약으 따르는 클래스의 구조를 보여줍니다.
public class BeanClassName implements java.io.Serializable {
/* 값을 저장하는 필드 */
/* BeanClassName의 기본 생성자*/
public BeanClassName() {
}
/* 필드의 값을 읽어오는 값*/
public String getValue() {
return value;
}
/* 필드의 값을 변경하는 값 */
public void setValue(String value) {
this.value = value;
}
자바빈 규약을 따르는 클래스를 자바빈이라고 부릅니다. JSP 프로그래밍에서 사용하는 자바빈 클래스는 위 코드처럼 데이터를 저장하는필드, 데이터를 읽어올 때 사용되는 메서드 그리고 값을 저장할 때 사용되는 메서드로 구성됩니다.
자바빈 프로퍼티
규칙 : 프로퍼티 이름이 propertyName일 경우
- setter : public void setPropertyName(Type value)
- getter : public Type getPropertyName()
- boolean 타입일 경우 getter에 get 대신 is 사용 가능
- 배열 지정 가능 : 예) public void setNames(Stirng[])
프로퍼티는 자바빈에 저장되는 값을 나타냅니다. 메서드 이름을 사용해서 프로퍼티의 이름을 결정하게 됩니다.
프로퍼티 값을 변경하는 메서드는 포러퍼티의 이름 중 첫 글자를 대문자로 변환한 문자열 앞에 set을 붙입니다.
메서드는 프로퍼티의 이름중 첫 글자를 대문자로 변환할 문자열 앞에 get을 붙입니다.
public void setMaxAge(int value);
public int getMaxAge();
프로퍼티 이름과 필드 이름은 같지 않아도 괜찮습니다.
예를 들어 maxAge 프로퍼티 값을 실제로 저장하는 필드와 maxAge 프로퍼티 값을 읽고 저장하는데 사용되는 메서드는 다음과 같이 코딩됩니다.
private int maximumAge = 0;
public void setMaxAge(int maxAge) {
maximumAge = maxAge;
}
public int getMaxAge() {
return maximumAge;
}
프로퍼티 타입이 boolean일 경우 get 대신에 is 를 붙일 수 있습니다.
예를 들어 졸료 여부를 나타내는 프로퍼티 이름이 finished이고 값 타입이 boolean이면
public boolean isFinished() {
...
}
public void setFinished(boolean finished) {
...
}
프로퍼티 값에는 읽기 전용 프로퍼티와 읽기/쓰기 프로퍼티가 존재합니다.
- 읽기 전용 프로퍼티 : get 또는 is 메서드만 존재하는 프로퍼티
- 읽기/쓰기 프로퍼티 : get/set 또는 is/set 메서드가 존재하는 프로퍼티
이렇게 정의 됩니다.
자바빈 프로퍼티는 배열로도 정의가 가능합니다.
public int[] getMark()
public void setMark(ine[] values)
이 코드는 mark 프로퍼티의 값 타입을 int 배열로 저장하고 있습니다.
getMark() 메서드는 배열을 리턴하는데, 배열 대신 한 원소에 접근하는 메서드를 추가할 수 있습니다.
특정 원소에 접근하는 메서드는 인덱스를 값으로 갖습니다.
public int getMark(int index)
public void setMark(int value, int index)
이 코드는 지정한 mark 프로퍼티 값인 int 배열 중에서 지정한 인덱스의 값을 읽거나 변경할때 사용됩니다.
예제로 사용할 자자빈 클래스는 회원 정보를 저장할 때 사용할 클래스로서 밑의 프로퍼티를 갖습니다.
프로퍼티 이름 | 값 타입 | 읽기/쓰기 여부 |
id | String | 읽기/쓰기 |
password | String | 읽기/쓰기 |
name | String | 읽기/쓰기 |
address | String | 읽기/쓰기 |
registerDate | java.util.Date | 읽기/쓰기 |
String | 읽기/쓰기 |
=MemberInfo 자바빈 프로퍼티 목록입니다.
위의 프로퍼티 목록의 따라 MemberInfo 자바빈 클래스의 코드 소스를 작성해보겠습니다.
import java.util.Date;
public class MemberInfo {
// 필드 생성
private String id;
private String password;
private String name;
private Date registerDate;
private String email;
// getter/setter
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getRegisterDate() {
return registerDate;
}
public void setRegisterDate(Date registerDate) {
this.registerDate = registerDate;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
'JSP' 카테고리의 다른 글
JSP EL (0) | 2022.07.15 |
---|---|
JSP <jsp:useBean> (0) | 2022.07.14 |
JSP 쿠키 (0) | 2022.07.13 |
JSP 예외처리 (0) | 2022.07.13 |
JSP HTML FORM (0) | 2022.07.11 |