English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JSP JavaBean

JavaBean은 Java 언어로 작성되고 JavaBean API 규격을 준수하는 특별한 Java 클래스입니다.

다음은 JavaBean이 다른 Java 클래스와 비교하여 독특한 특징을 가지고 있습니다:

  • 기본적인 파라미터 없는 생성자를 제공합니다.

  • 시리얼라이즈되고 Serializable 인터페이스를 구현해야 합니다.

  • 읽기 쓰기 가능 속성이 여러 개 있을 수 있습니다.

  • getter 메서드가 여러 개 있을 수 있습니다. setter 메서드.

JavaBean 속성

JavaBean 객체의 속성은 접근 가능해야 합니다. 이 속성은 어떤 법적 Java 데이터 타입이든, 사용자 정의 Java 클래스도 포함될 수 있습니다.

JavaBean 객체의 속성은 읽기 쓰기 가능, 읽기 전용, 쓰기 전용으로 나눌 수 있습니다. JavaBean 객체의 속성은 JavaBean 구현 클래스에서 제공하는 두 메서드를 통해 접근됩니다:

메서드설명
getPropertyName() 예를 들어, 속성 이름이 myName이면, 이 메서드 이름은 getMyName()로 작성되어 이 속성을 읽어야 합니다. 이 메서드는 접근 메서드라고도 합니다.
setPropertyName() 예를 들어, 속성 이름이 myName이면, 이 메서드 이름은 setMyName()로 작성되어 이 속성에 쓰여야 합니다. 이 메서드는 쓰기 메서드라고도 합니다.

읽기 전용 속성은 getPropertyName() 메서드만 제공하고, 쓰기 전용 속성은 setPropertyName() 메서드만 제공합니다.

JavaBean 프로그램 예제

이 StudentBean.java 파일은 다음과 같습니다:

package com.w3codebox;
public class StudentsBean implements java.io.Serializable
{
   private String firstName = null;
   private String lastName = null;
   private int age = 0;
   public StudentsBean() {
   {}
   public String getFirstName(){
      return firstName;
   {}
   public String getLastName(){
      return lastName;
   {}
   public int getAge(){
      return age;
   {}
   public void setFirstName(String firstName){
      this.firstName = firstName;
   {}
   public void setLastName(String lastName){
      this.lastName = lastName;
   {}
   public void setAge(int age) {
      this.age = age;
   {}
{}

StudentBean.java 파일을 컴파일합니다(마지막 예제에서 사용됩니다):

$ javac StudentsBean.java

컴파일하여 StudentBean.class 파일을 복사하여 <JSP 프로젝트>/WebContent/WEB-INF/classes/com/w3codebox위 그림과 같이 보입니다:

JavaBean 접근

<jsp:useBean> 태그는 JSP에서 JavaBean을 선언하고 사용할 수 있습니다. 선언 후, JavaBean 객체는 스크립트 변수가 되며 스크립트 요소나 다른 커스텀 태그를 통해 접근할 수 있습니다. <jsp:useBean> 태그의 문법 형식은 다음과 같습니다:

<jsp:useBean id="bean 의 이름" scope="bean 의 작용域" typeSpec/>

특정 상황에 따라 scope의 값은 page, request, session 또는 application일 수 있습니다. id 값은 다른 <jsp:useBean> 태그의 id 값과 중복되지 않는 모든 값으로 사용할 수 있습니다.

다음은 <jsp:useBean> 태그의 간단한 사용법입니다:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>useBean 예제</title>
</head>
<body>
<jsp:useBean id="date" /> 
<p>날짜는:<%= date %>
</body>
</html>

다음과 같은 결과를 얻습니다:

날짜는 Tue Jun 28 15:22:24 CST 2016

JavaBean 객체의 속성에 접근하는 방법입니다

다음은 <jsp:useBean> 태그 본문에서 사용됩니다 <jsp:getProperty/> 태그를 사용하여 호출합니다 getter 메서드는 다음과 같이 사용됩니다 <jsp:setProperty/> 태그를 사용하여 호출합니다 setter 메서드, 문법 형식은 다음과 같습니다:

<jsp:useBean id="id" scope="bean 작용域">
   <jsp:setProperty name="bean 의 id" property="속성명"  
                    value="value"/>
   <jsp:getProperty name="bean 의 id" property="속성명"/>
   ...........
</jsp:useBean>

name 속성은 Bean의 id 속성을 의미합니다. property 속성은 호출하고자 하는 getter 또는 setter 메서드를 의미합니다。

다음은 이 syntax를 사용하여 속성 접근을 하는 간단한 예제를 제공합니다:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>get과 set 속성 예제</title>
</head>
<body>
<jsp:useBean id="students"> 
                   > 
   <jsp:setProperty name="students" property="firstName">
                    value="소강"/>
   <jsp:setProperty name="students" property="lastName"> 
                    value="왕"/>
   <jsp:setProperty name="students" property="age">
                    value="10"/>
</jsp:useBean>
<p>학생 이름: 
   <jsp:getProperty name="students" property="firstName">/>
</p>
<p>학생 성씨: 
   <jsp:getProperty name="students" property="lastName">/>
</p>
<p>학생 연령: 
   <jsp:getProperty name="students" property="age">/>
</p>
</body>
</html>

위 JSP에 접근하여 실행 결과는 다음과 같습니다:

학생 이름: 소강
학생 성씨: 왕
학생 연령: 10