JSP 4일차 : 자바빈즈
자바빈즈
-
자바빈은 JSP에서 사용되는 데이타를 저장 및 관리하기 위한 컴포넌트를 의미한다.
-
자바빈즈의 규칙
-
- 멤버변수는 반드시 private으로 준다
- setter & getter 메서드는 public으로 준다
- 멤버변수명은 폼태그의 name과 반드시 동일해야 한다
-
액션태그
-
- useBean : 자바빈 컴포넌트를 사용하기 위한 액션태그 (클래스 생성과 같음)
- setProperty : 자바빈 인스턴스에 저장하기 위한 액션태그
- getProperty : 자바빈 인스턴스에서 데이타를 얻기위한 액션태그
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex1 beans form</title>
</head>
<body>
<form action="Ex2_beansAction.jsp" method="post">
이름 : <input type="text" name="name" size="6"><br>
나이 : <input type="text" name="age" size="6"><br>
주소 : <input type="text" name="addr" size="6"><br>
<input type="submit" value="submit!">
</form>
</body>
</html>
<%@page import="test.day0426.PersonDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex2 beans action </title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String age = request.getParameter("age");
String addr = request.getParameter("addr");
PersonDTO dto = new PersonDTO();
dto.setName(name);
dto.setAge(age);
dto.setAddr(addr);
%>
<pre>
** 일반적인 방법으로 데이타 읽어서 출력하기 **
이름 : <%=dto.getName() %>
나이 : <%=dto.getAge() %>
주소 : <%=dto.getAddr() %>
</pre>
<hr>
<jsp:useBean id="dto2" class="test.day0426.PersonDTO" />
<jsp:setProperty property="name" name="dto2" />
<jsp:setProperty property="addr" name="dto2" />
<jsp:setProperty property="age" name="dto2" />
<pre>
** 자바빈즈를 이용해 각각 데이타 읽어서 DTO에 넣어 출력하기 **
이름 : <jsp:getProperty property="name" name="dto2" />
나이 : <jsp:getProperty property="age" name="dto2" />
주소 : <jsp:getProperty property="addr" name="dto2" />
</pre>
<hr>
<jsp:useBean id="dto3" class="test.day0426.PersonDTO"></jsp:useBean>
<jsp:setProperty property="*" name="dto3"/> <!-- 개편하다...! -->
<pre>
** 자바빈즈를 이용해 한꺼번에 데이타 읽어서 DTO에 넣어 출력하기 **
이름 : <%=dto3.getName() %>
나이 : <%=dto3.getAge() %>
주소 : <%=dto3.getAddr() %>
</pre>
</body>
Comments