📌 1. 자바빈즈(Java Beans)
📍 1-1. 자바빈즈 액션태그
- 자바빈즈(Java Beans) : JSP의 표준 액션 태그를 통해 접근할 수 있는 자바 클래스로서 멤버변수(
필드
)와 getter
, setter
메소드로 이루어져 있다.
public class MemberBean {
// 필드
private String name;
private int age;
// 메서드
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
📍 1-1. 객체 생성
- java :
MemberBean member = new MemberBean();
- jsp 태그 :
<jsp:useBean class="패키지명.MemberBean" id="member">
📍 1-2. setter()
- java :
member.setName("자바학생");
- jsp 태그 :
<jsp:setProperty name="member" property="name" value="자바학생"/>
📍 1-3. getter()
- java :
member.getName();
- jsp 태그 :
<jsp:getProperty name="member" property="name" />
📍 2-1. ArrayList로 빈즈 이용하기
- 자바빈즈 객체를 이용한 DB SELECT 메서드 예시
// MemberBean 객체들을 저장하는 ArrayList를 반환하는 메서드
public ArrayList<MemberBean> selectAll(){
String sql = "SELECT * FROM MEMBER";
// 새 결과 ArrayList<MemberBean> 생성
ArrayList<MemberBean> result = new ArrayList<>();
try {
conn = DBConnection.getConnection();
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
// sql문 실행으로 얻어온 ResultSet 조회
while(rs.next()) {
// rs 레코드당 하나의 MemberBean 생성
MemberBean member = new MemberBean();
// 결과를 Bean에 저장
member.setName(rs.getString(1));
member.setAge(rs.getInt(2));
// Bean을 ArrayList result에 add
result.add(member);
}
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
- 자바빈즈 객체가 담긴 ArrayList 사용 예시
<body>
// useBean 태그로 select 메서드가 담긴 DAO 가져오기
<jsp:useBean id="mdao" class="com.codingbox.dao.MemberDao"/>
<%
// ArrayList에 결과 담아오기
ArrayList<MemberBean> result = mdao.selectAll();
%>
<table border="1">
<tr>
<th>이름</th>
<th>나이</th>
</tr>
// 담긴 객체 수만큼 데이터를 MemberBean 객체에 할당하며 도는 반복문
<% for( MemberBean member : result) {%>
<tr>
// getter 메서드로 데이터를 꺼내서 사용
<td><%= member.getName() %></td>
<td><%= member.getAge() %></td>
</tr>
<%} %>
</table>
<input type="button" value="다시 검색하기"
onclick="location.href = 'age_search.jsp'">
</body>