JavaBean
1、JavaBean是特殊的Java类,使用 Java 语言书写,并且遵守JavaBean API规范的可重用组件;
以下是 JavaBean API 中的对 JavaBean 类的规范:
-
提供一个默认的无参构造函数;
-
需要被序列化并且实现了Serializable接口;
-
可能有一系列可读写属性;
-
可能有一系列的"getter"或"setter"方法;
2、JavaBean可以分为2种:
-
有用户界面(UI)的 JavaBean,比如Swing框架中的各种组件;
- 没有用户界面的,主要负责事务(数据运算,数据库操作)的 JavaBean,JSP通常访问这种 JavaBean;
3、一个JavaBean由3部分构成:
-
属性(properties)
JavaBean提供了高层次的属性概念,拥有属性读取和属性写入的API的支持,同时对bean进行操作。JavaBean还可以对属性值的改变作出及时的反应;
- 方法(method)
对于JavaBean中,外部可调用的方法一般是各种属性的 getter 和 setter 方法,对有 JaveBean 的设计初衷,外部调用 JavaBean 更多依赖于Bean的属性和事件;
-
事件(event)
Bean与其他软件组件交流信息的主要方式是发送和接受事件,事件为JavaBean组件提供了一种发送通知给其他组件的方法;
4、Java Bean 类的简单示例MessageBean.java : 定义一个储存信息的 Java Bean1
package demo;
2public class MessageBean implements java.io.Serializable{
3
4 private String id = null;
5 private String message = null;
6 private int level = 0;
7
8 public MessageBean(){
9 }
10 public String getId(){
11 return this.id;
12 }
13 public String getMessgae{
14 return this.message;
15 }
16 public String getLevel{
17 return this.level;
18 }
19 public void setId(String id){
20 this.id = id;
21 }
22 public void setMessage(String message){
23 this.message = message;
24 }
25 public void setLevel(int level){
26 this.level = level;
27 }
28}
JSP 对 JavaBean 的访问
JSP 中对于 JavaBean 的访问主要是通过<jsp:useBean><jsp:setProperty><jsp:getProperty>这3个动作元素来实现的;
1、JSP 加载/创建 JavaBean实例
<jsp:useBean> 动作用来加载一个将在JSP页面中使用的JavaBean, 语法格式如下:1<jsp:useBean id="name" class="package.class" />
<jsp:useBean> 相关属性如同所有 JSP 动作标签一样,要对<jsp:useBean>指定 id 和 scope 属性,详见:03. JSP 动作标签在类载入后,可以通过 <jsp:setProperty> 和 <jsp:getProperty> 动作来修改和检索bean的属性;2、JSP 设置 JavaBean 属性值
<jsp:setProperty>动作用于设置已经实例化的Bean的属性,由2种用法:① jsp:useBean元素的外面(后面)使用jsp:setProperty, 此时,不管 jsp:useBean 是找到了一个现有的Bean,还是新创建了一个Bean实例,jsp:setProperty 都会执行。 如下所示:1
<jsp:useBean id="myName" />
2
3<jsp:getProperty name="myName" property="someProperty" />
② 把 jsp:setProperty 放入 jsp:useBean 元素的内部,此时,jsp:setProperty 只有在新建Bean实例时才会执行,如果是使用现有实例则不执行 jsp:setProperty;1<jsp:useBean id="myName" >
2
3 <jsp:setProperty name="myName" property="someProperty" />
4</jsp:useBean>
<jsp:setProperty>相关属性3、JSP 获取 JavaBean 属性值
<jsp:getProperty>动作提取指定Bean属性的值,转换成字符串,然后输出。语法格式如下:1<jsp:useBean id="myName" />
2
3<jsp:getProperty name="myName" property="someProperty" />
<jsp:getProperty>相关属性4、简要示例
该例子直接引用以上的示例 JavaBean 类 MessageBean1<% page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3<!DOCTYPE html>
4<html>
5<head>
6<meta charset="utf-8">
7<title>Use Java Bean Test</title>
8</head>
9<body>
10
11<h2>Use Java Bean Test</h2>
12
13<%--创建Java Bean实例: 可以不指定scope,默认为page --%>
14<jsp:useBean id="message_bean" class="demo.MessageBean" scope="page" />
15
16<%-- 设置Java Bean的属性值--%>
17<jsp:setProperty name="message_bean" property="id" value="0113" />
18<jsp:setProperty name="message_bean" property="message" value="This is Just a test message!" />
19<jsp:setProperty name="message_bean" property="level" value="3" />
20
21<%--回显Java Bean 的各项属性值 --%>
22<p>id:
23 <jsp:getProperty name="message_bean" property="id" />
24<p>
25<p>message:
26 <jsp:getProperty name="message_bean" property="message" />
27<p>
28<p>level:
29 <jsp:getProperty name="message_bean" property="level" />
30<p>
31
32</body>
33</html>