JSP JavaBean使用

JSP JavaBean使用

JavaBean是一种专门构建的Java类,它使用Java编写,并根据JavaBeans API规范进行编码。

以下是将JavaBean与其他Java类有区别的独特特征 -

  • 它提供了一个默认的,无参数的构造函数。
  • 它应该是可序列化的,可以实现Serializable接口。
  • 它可能有许多可以读取或写入的属性。
  • 它可能有一些gettersetter方法的属性。

JavaBeans属性

JavaBean属性是可由对象的用户访问的命名属性。该属性可以是任何Java数据类型,包括定义的类。
JavaBean属性可能被读取,写入,只读或只写。JavaBean属性通过JavaBean实现类中的两种方法进行访问 -

编号 方法 描述
1 getPropertyName() 例如,如果PropertyNamefirstName,那么方法名称将是getFirstName(),它用来来读取该属性的值。这种方法称为访问器。
2 setPropertyName() 例如,如果PropertyName名称是firstName,那么方法名称将为setFirstName()来写入该属性的值。这种方法叫赋值函数。

只读属性将只有一个getPropertyName()方法,只写属性将只有一个setPropertyName()方法。

JavaBeans示例

为了更好地演示如何使用JavaBean,我们打开Eclipse,创建一个动态Web项目:JavaBean,其项目结构如下所示 -

考虑一个拥有几个属性的学生(Student)类 -

文件:Student.java

package com.zyiz;

public class Student {
    private String name;
    private String from;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFrom() {
        return from;
    }

    public void setFrom(String from) {
        this.from = from;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}

访问JavaBeans

useBean动作声明一个用于JSP的JavaBean。当声明了之后,该bean就成为脚本变量,可以由脚本元素和JSP中使用的其他自定义标签访问。useBean标签的完整语法如下 -

<jsp:useBean id = "bean's name" scope = "bean's scope" typeSpec/>

这里,scope属性的值可以是page, request, sessionapplicationid属性的值可以是任何值,只要它是同一个JSP页面中不同于其他useBean声明中的唯一名称。

以下示例显示如何使用useBean操作 -

<html>
   <head>
      <title>useBean Example</title>
   </head>

   <body>
      <jsp:useBean id = "date" class = "java.util.Date" /> 
      <p>The date/time is <%= date %>
   </body>
</html>

运行上面示例代码得到以下结果 -

The date/time is Thu Sep 20 13:18:11 GST 2017

访问JavaBeans属性

<jsp:useBean ...>动作一起,可以使用<jsp:getProperty />动作来访问get方法和<jsp:setProperty />动作来访问set方法。这里是完整的语法 -

<jsp:useBean id = "id" class = "bean's class" scope = "bean's scope">
   <jsp:setProperty name = "bean's id" property = "property name"  
      value = "value"/>
   <jsp:getProperty name = "bean's id" property = "property name"/>
   ...........
</jsp:useBean>

name属性引用了以前通过useBean操作引入到JSP中的JavaBeanid。属性是应该调用的getset方法的名称。

以下示例显示如何使用上述语法访问数据。

文件:index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP+JavaBean</title>
</head>
<body>

    <div style="margin:auto; width: 90%">
        <!-- 设置学生信息 -->
        <jsp:useBean id="student" class="com.zyiz.Student">
            <jsp:setProperty name="student" property="name" value="苏小牛" />
            <jsp:setProperty name="student" property="from" value="Haikou" />
            <jsp:setProperty name="student" property="age" value="25" />
        </jsp:useBean>

        <p>
            学生姓名:
            <jsp:getProperty name="student" property="name" />
        </p>

        <p>
            所在地:
            <jsp:getProperty name="student" property="from" />
        </p>

        <p>
            年龄:
            <jsp:getProperty name="student" property="age" />
        </p>
    </div>

</body>
</html>

在编写完成上面示例代码后,运行项目并打开浏览器访问URL:http://localhost:8080/JavaBean/index.jsp , 得到以下结果 -