JSP JavaBean
JavaBean 是遵守 JavaBean API 规范的特殊的类
JavaBean 相比于普通的 Java 类有一些独有的特征:
-
提供一个默认的无参构造函数
-
需要被序列化并且实现了 Serializable 接口
-
可能有一系列可读写属性
-
可能有一系列的
getter
或setter
方法
看起来这 4 条没什么好惊讶的样子,继续往下看
JavaBean 属性
JavaBean 属性有以下特点
-
属性是可访问的
-
属性可以是任意合法的 Java 数据类型,包括自定义的 Java类
-
属性可以是可读写,或只读,或只写
-
JavaBean 可以通过
getPropertyName()
访问器来获取属性的值举例来说,如果属性的名称为 nickName,那么这个方法的名字就要写成 getNickName()来读取这个属性。
这种方法称为访问器
-
JavaBean 可以通过
setPropertyName()
写入器来修改属性的值举例来说,如果属性的名称为 nickName,那么这个方法的名字就要写成 setNickName()来写入这个属性
这种方法称为写入器
-
一个只读的属性只提供 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 显示结果如下