JSP JavaBean

JavaBean 是遵守 JavaBean API 规范的特殊的类

JavaBean 相比于普通的 Java 类有一些独有的特征:

  1. 提供一个默认的无参构造函数

  2. 需要被序列化并且实现了 Serializable 接口

  3. 可能有一系列可读写属性

  4. 可能有一系列的 gettersetter 方法

看起来这 4 条没什么好惊讶的样子,继续往下看

JavaBean 属性

JavaBean 属性有以下特点

  1. 属性是可访问的

  2. 属性可以是任意合法的 Java 数据类型,包括自定义的 Java类

  3. 属性可以是可读写,或只读,或只写

  4. JavaBean 可以通过 getPropertyName() 访问器来获取属性的值

    举例来说,如果属性的名称为 nickName,那么这个方法的名字就要写成 getNickName()来读取这个属性。

    这种方法称为访问器

  5. JavaBean 可以通过 setPropertyName() 写入器来修改属性的值

    举例来说,如果属性的名称为 nickName,那么这个方法的名字就要写成 setNickName()来写入这个属性

    这种方法称为写入器

  6. 一个只读的属性只提供 getPropertyName() 方法,一个只写的属性只提供 setPropertyName()方法

JavaBean 定义范例

下面的的范例演示了如何定义一个 JavaBean

cn/twle/demo/bean/SiteBean.java

// author: 简单教程(www.twle.cn)
// Copyright © 2015-2065 www.twle.cn. All rights reserved.

package cn.twle.demo.bean;

import java.io.*;

public class SiteBean implements java.io.Serializable
{
   private String name = null;
   private String url= null;
   private int rank = 0;

   public SiteBean()
   {
   }

   public String getName()
   {
      return name;
   }

   public String getUrl()
   {
      return url;
   }

   public int getRank()
   {
      return rank;
   }


   public void setName(String name){
      this.name = name;
   }
   public void setUrl(String url){
      this.url = url;
   }
   public void setRank(int rank) {
      this.rank = rank;
   }
}

编译 SiteBean.java 文件(最后一个实例会用到)

$ javac SiteBean.java

编译后获得 SiteBean.class 文件,将其拷贝到 <JSP 项目>/WebContent/WEB-INF/classes/cn/twle/demo/bean 目录

访问 JavaBean

JSP <jsp:useBean> 动作可以加载一个 JavaBean 到当前 JSP 页面,然后就可以通过脚本元素或其他自定义标签来访问

<jsp:useBean id="site" class="cn.twle.demo.bean.SiteBean"></jsp:useBean>

关于 JSP <jsp:useBean> 动作的更多知识,可以访问 JSP <jsp:useBean> 动作

访问 JavaBean 对象的属性

<jsp:useBean> 动作中可以使用 <jsp:setProperty/> 动作来调用 setter 方法

<jsp:useBean id="site" class="cn.twle.demo.bean.SiteBean">
   <jsp:setProperty name="site" property="name" value="简单教程"/>
   <jsp:setProperty name="site" property="url"  value="https://www.twle.cn"/>
   <jsp:setProperty name="site" property="rank" value="100"/>
</jsp:useBean>

使用 <jsp:getProperty/> 动作来调用 getter 方法,

<jsp:getProperty name="site" property="name"/>

想了解更多 <jsp:getProperty/> 的知识可以点击 JSP <jsp:getProperty/> 动作 想了解更多 <jsp:setProperty/> 的知识可以点击 JSP <jsp:setProperty/> 动作

范例

结合上面定义的 SiteBean.java ,我们使用 <jsp:useBean> 动作加载到当前 JSP 页面,设置属性并显示属性

webapp/javabean_use.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<meta charset="utf-8"/>
<title>JavaBean get 和 set 属性范例 | JSP 基础教程 | 简单教程(www.twle.cn)</title>

<jsp:useBean id="site" class="cn.twle.demo.bean.SiteBean">
   <jsp:setProperty name="site" property="name" value="简单教程"/>
   <jsp:setProperty name="site" property="url"  value="https://www.twle.cn"/>
   <jsp:setProperty name="site" property="rank" value="100"/>
</jsp:useBean>

<p>站点名字: <jsp:getProperty name="site" property="name"/></p>
<p>站点网址: <jsp:getProperty name="site" property="url"/></p>
<p>站点排名: <jsp:getProperty name="site" property="rank"/></p>
<br/>
<p>JavaBean get 和 set 属性范例 | JSP 基础教程 | 简单教程(www.twle.cn)</p>
<br/>
<br/>

在浏览器上输入 http://localhost:8080/jsp/javabean_use.jsp 显示结果如下

JSP 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.