JSP 자바빈
JavaBean은 Java 언어로 작성된 특수 Java 클래스이며 JavaBean API 사양을 준수합니다.
다른 Java 클래스와 비교하여 JavaBean의 독특한 특징은 다음과 같습니다.
인수가 없는 기본 생성자를 제공합니다.
직렬화가 필요하며 직렬화 가능 인터페이스를 구현합니다.
다양한 읽기 및 쓰기 가능 속성이 있을 수 있습니다.
일련의 "getter" 또는 "setter" 메소드가 있을 수 있습니다.
JavaBean 속성
JavaBean 객체의 속성은 액세스 가능해야 합니다. 이 속성은 사용자 정의 Java 클래스를 포함한 모든 합법적인 Java 데이터 유형일 수 있습니다.
JavaBean 객체의 속성은 읽기-쓰기, 읽기 전용 또는 쓰기 전용일 수 있습니다. JavaBean 객체의 속성은 JavaBean 구현 클래스에서 제공되는 두 가지 메소드를 통해 액세스됩니다:
方法 | 描述 |
---|---|
getPropertyName() | 举例来说,如果属性的名称为myName,那么这个方法的名字就要写成getMyName()来读取这个属性。这个方法也称为访问器。 |
setPropertyName() | 举例来说,如果属性的名称为myName,那么这个方法的名字就要写成setMyName()来写入这个属性。这个方法也称为写入器。 |
읽기 전용 속성은 getPropertyName() 메서드만 제공하고, 쓰기 전용 속성은 setPropertyName() 메서드만 제공합니다.
JavaBean 프로그램 예
StudentBean.java 파일은 다음과 같습니다.
package com.php; 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 Project>/WebContent/WEB-INF/classes/com/php에 복사합니다. 아래 그림은
Access JavaBean
<jsp:useBean> 태그를 사용하여 JSP에서 JavaBean을 선언한 후 사용할 수 있습니다. 선언 후 JavaBean 객체는 스크립트 변수가 되며 스크립트 요소나 기타 사용자 정의 태그를 통해 액세스할 수 있습니다. <jsp:useBean> 태그의 구문 형식은 다음과 같습니다.
<jsp:useBean id="bean 的名字" scope="bean 的作用域" typeSpec/>
그 중 특정 상황에 따라 범위 값은 페이지, 요청, 세션 또는 애플리케이션이 될 수 있습니다. id 값은 동일한 JSP 파일의 다른 <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" class="java.util.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" class="bean 编译的类" scope="bean 作用域"> <jsp:setProperty name="bean 的 id" property="属性名" value="value"/> <jsp:getProperty name="bean 的 id" property="属性名"/> ........... </jsp:useBean>
name 속성은 Bean의 id 속성을 나타냅니다. 속성 속성은 호출하려는 getter 또는 setter 메서드를 나타냅니다.
다음은 위의 속성 액세스 구문을 사용한 간단한 예입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>get 和 set 属性实例</title> </head> <body> <jsp:useBean id="students" class="com.php.StudentsBean"> <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