橘子味的心
标题: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

  1. package com.yiibai;
  2.  
  3. public class Student {
  4. private String name;
  5. private String from;
  6. private int age;
  7.  
  8. public String getName() {
  9. return name;
  10. }
  11.  
  12. public void setName(String name) {
  13. this.name = name;
  14. }
  15.  
  16. public String getFrom() {
  17. return from;
  18. }
  19.  
  20. public void setFrom(String from) {
  21. this.from = from;
  22. }
  23.  
  24. public int getAge() {
  25. return age;
  26. }
  27.  
  28. public void setAge(int age) {
  29. this.age = age;
  30. }
  31.  
  32. }
  33. Java

访问JavaBeans

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

  1. <jsp:useBean id = "bean's name" scope = "bean's scope" typeSpec/>
  2. Jsp

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

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

  1. <html>
  2. <head>
  3. <title>useBean Example</title>
  4. </head>
  5.  
  6. <body>
  7. <jsp:useBean id = "date" class = "java.util.Date" />
  8. <p>The date/time is <%= date %>
  9. </body>
  10. </html>
  11. HTML

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

  1. The date/time is Thu Sep 20 13:18:11 GST 2017
  2. Shell

访问JavaBeans属性

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

  1. <jsp:useBean id = "id" class = "bean's class" scope = "bean's scope">
  2. <jsp:setProperty name = "bean's id" property = "property name"
  3. value = "value"/>
  4. <jsp:getProperty name = "bean's id" property = "property name"/>
  5. ...........
  6. </jsp:useBean>
  7. Jsp

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

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

文件:index.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>JSP+JavaBean</title>
  8. </head>
  9. <body>
  10.  
  11. <div style="margin:auto; width: 90%">
  12. <!-- 设置学生信息 -->
  13. <jsp:useBean id="student" class="com.yiibai.Student">
  14. <jsp:setProperty name="student" property="name" value="苏小牛" />
  15. <jsp:setProperty name="student" property="from" value="Haikou" />
  16. <jsp:setProperty name="student" property="age" value="25" />
  17. </jsp:useBean>
  18.  
  19. <p>
  20. 学生姓名:
  21. <jsp:getProperty name="student" property="name" />
  22. </p>
  23.  
  24. <p>
  25. 所在地:
  26. <jsp:getProperty name="student" property="from" />
  27. </p>
  28.  
  29. <p>
  30. 年龄:
  31. <jsp:getProperty name="student" property="age" />
  32. </p>
  33. </div>
  34.  
  35. </body>
  36. </html>
  37. HTML

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