자바빈(Java Bean) 액션태그

  • 특정한 작업을 하기위한 독립적으로 수행하는 컴포넌트

  • JSP 페이지에서 HTML코드와 Java코드를 분리하기 위한 목적

    1. 데이터 저장 및 관리목적 : 데이터베이스 테이블에 매핑되는 클래스

      : 자바빈 클래스를 사용할 액션태그

    2. 기능구현 목적 : 비즈니스 로직으로 구성된 클래스

public class TestBean {

//	DB - 테이블
//	
//	CREATE TABLE TEST
//	(
//		ID VARCHAR2(20) PRIMARY KEY
//	);
//	
//	위의 테이블과 구조가 동일한 클래스 생성
	
    // 변수 id를 form.jsp의 name 과 일치시켜야 함
	private String id;
	
	public String getId() {
		return id;
	}
	
	public void setId(String id) {
		
	}
	
}
beanTestForm.jsp 파일

<html>
<head>
<meta charset="UTF-8">
<title>자바빈 클래스 이용</title>
</head>
<body>
	<form method="post" action="beanTestPro.jsp">
		<dl>
			<dd>
				<label>아이디</label>
				<input type="text" name="id" id="id" placeholder="아이디를 입력" autofocus required>
			</dd>
			<dd>
				<input type="submit" value="입력완료">
			</dd>
		</dl>
	</form>
</body>
</html>
beanTestPro.jsp 파일

<% // <jsp:useBean id="자바 객체생성" class="자바빈 클래스명 경로">
   // </jsp:useBean>
   // <jsp:setProperty property="자바 객체의 set함수" name="위의 id에 들어간 것"/> %>

<jsp:useBean id="testBean" class="ch08.bean.TestBean">
</jsp:useBean>
<jsp:setProperty property="id" name="testBean"/>

입력한 아이디 : <jsp:getProperty property="id" name="testBean"/>

예제 연습

package ch08.register;

import java.sql.Timestamp;

// 회원테이블 참조
// userId, passwd, name, reg_date 필드

public class RegisterBean {
	
	// 1) 모든 필드는 private 접근자 선언
	private String userId;
	private String passwd;
	private String name;
	
	private Timestamp reg_date;

	// 2) 모든 필드에 대한 getter, setter 메서드 정의
	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getPasswd() {
		return passwd;
	}

	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Timestamp getReg_date() {
		return reg_date;
	}

	public void setReg_date(Timestamp reg_date) {
		this.reg_date = reg_date;
	}
}
registerForm.jsp 파일
실행시키기

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form method="post" action="registerPro.jsp">
		<dl>
			<dd>
				<label for="userId">아이디</label>
				<input type="text" name="userId" id="userId" placeholder="user01@abc.com" autofocus required>
			</dd>
			<dd>
				<label for="passwd">비밀번호</label>
				<input type="password" name="passwd" id="passwd" placeholder="비밀번호 입력" autofocus required>
			</dd>
			<dd>
				<label for="name">이름</label>
				<input type="text" name="name" id="name" placeholder="이름을 입력" autofocus required>
			</dd>
			<dd>
				<input type="submit" value="전송">
			</dd>
		</dl>
	</form>
</body>
</html>
registerPro.jsp 파일

<% request.setCharacterEncoding("utf-8"); // 한글 섞여있는경우 변환작업 %>

<jsp:useBean id="registerBean" class="ch08.register.RegisterBean">
	<jsp:setProperty property="userId" name="registerBean"/>
	<jsp:setProperty property="passwd" name="registerBean"/>
	<jsp:setProperty property="name" name="registerBean"/>
</jsp:useBean>

<%
	// 가입날짜 처리구문
	registerBean.setReg_date(new Timestamp(System.currentTimeMillis()));
%>

아이디 : 		<jsp:getProperty property="userId" name="registerBean"/>		<br>
비밀번호 : 	<jsp:getProperty property="passwd" name="registerBean"/>		<br>
이름 : 		<jsp:getProperty property="name" name="registerBean"/>			<br>
가입날짜 : 	<jsp:getProperty property="reg_date" name="registerBean"/>		<br>

태그:

카테고리:

업데이트:

댓글남기기