MENU

JavaBean

October 21, 2018 • Read: 4113 • JSP阅读设置

一、什么是 JavaBean展开目录

JavaBean 是一个遵循特定写法的 Java 类,它通常具有如下特点

  • 这个 Java 类必须具有一个无参的构造方法
  • 属性(变量)必须私有化
  • 私有化的属性必须通过 public 方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范

JavaBean 范例

  • package cn.edu.wic.jsp.bean;
  • public class Circle {
  • // 半径 double类型
  • private double radius;
  • //无参数构造方法
  • public Circle() {}
  • //Circle类对外提供的用于访问私有属性的public方法
  • public void setRadius(double radius) {
  • this.radius = radius;
  • }
  • public double getRadius() {
  • return this.radius;
  • }
  • public double getLength() {
  • return Math.PI * radius * 2;
  • }
  • public double getArea() {
  • return Math.PI * radius * radius;
  • }
  • }

二、JavaBean 的属性展开目录

JavaBean 的属性可以是任意类型,并且一个 JavaBean 可以有多个属性。每个属性通常都需要具有相应的 setXxxx、getXxxx 方法。setXxxx 方法称为属性修改器,getXxxx 方法称为属性访问器

属性修改器必须以小写的 set 前缀开始,后跟属性名,且属性名的第一个字母也要改为大写,例如 name 属性的修改器名称为 setName

属性访问器通常以小写的 get 前缀开始,后跟属性名,且属性名的第一个字母也要大写,例如,name 属性的访问器名称为 getName

一个 JavaBean 的某个属性也只能有 set 方法和 get 方法

三、在 JSP 中使用 JavaBean展开目录

JSP 提供了三个关于 JavaBean 组件的动作元素,即 JSP 标签,它们分别为:

  • <jsp:useBean> 标签:用于在 JSP 页面中查找或实例化一个 JavaBean 组件
  • <jsp:setProperty> 标签:用于在 JSP 页面中设置一个 JavaBean 组件的属性
  • <jsp:getProperty> 标签:用于在 JSP 页面中获取一个 JavaBean 组件的属性

3.1 <jsp:useBean> 标签展开目录

<jsp:useBean> 标签用于在指定的域范围查找指定名称的 JavaBean 对象,如果存在则直接范围该 JavaBean 对象的引用,如果不存在则实例化一个新的 JavaBean 对象并将它以指定的名称存储到指定的域范围中

常用语法:
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>

"id" 属性用于指定 JavaBean 实例对象的引用名称和其存储在域范围中的名称

"class" 属性用于指定 JavaBean 的完整类名(即必须带有包名)

"scope" 属性用于指定 JavaBean 实例对象所存储的域范围,其取值只能是 page、request、session 和 application 等四个值中的一个,其默认值是 page

3.2 <jsp:setProperty> 标签展开目录

<jsp:setProperty> 标签用于设置和访问 JavaBean 对象的属性

语法格式一:
<jsp:setProperty name="beanName" property="propertyName" value="string 字符串"/>

语法格式二:
<jsp:setProperty name="beanName" property="propertyName" value="<%= expression %>" />

语法格式三:
<jsp:setProperty name="beanName" property="propertyName" param="parameterName"/>

语法格式四:
<jsp:setProperty name="beanName" property= "*" />

name 属性用于指定 JavaBean 对象的名称
property 属性用于指定 JavaBean 实例对象的属性名
value 属性用于指定 JavaBean 对象的某个属性的值,value 的值可以是字符串,也可以是表达式。为字符串时,该值会自动转化为 JavaBean 属性相应的类型,如果 value 的值是一个表达式,那么该表达式的计算结果必须与所要设置的 JavaBean 属性的类型一致
param 属性用于将 JavaBean 实例对象的某个属性值设置为一个请求参数值,该属性值同样会自动转换成要设置的 JavaBean 属性的类型

  • <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  • <%
  • String path = request.getContextPath();
  • String basePath = request.getScheme() + "://"
  • + request.getServerName() + ":" + request.getServerPort()
  • + path + "/";
  • %>
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  • <html>
  • <head>
  • <base href="<%=basePath%>">
  • <title>My JSP 'circle.jsp' starting page</title>
  • <meta http-equiv="pragma" content="no-cache">
  • <meta http-equiv="cache-control" content="no-cache">
  • <meta http-equiv="expires" content="0">
  • <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  • <meta http-equiv="description" content="This is my page">
  • </head>
  • <body>
  • <jsp:useBean id="circle" class="cn.edu.wic.jsp.bean.Circle" scope="page" />
  • <jsp:setProperty name="circle" property="radius" param="radius"/>
  • <%-- param接收参数 http://xxxxx.jsp?radius=value --%>
  • <%
  • out.print(circle.getRadius());
  • %>
  • </body>
  • </html>

3.3 <jsp:getProperty>展开目录

<jsp:getProperty> 标签用于读取 JavaBean 对象的属性,也就是调用 JavaBean 对象的 getXxxx 方法,然后将读取的属性值转换成字符串后插入进输出的响应正文中

语法:
<jsp:getProperty name="beanInstanceName" property="PropertyName"/>

name 属性用于指定 JavaBean 实例对象的名称,其值应与 <jsp:useBean> 标签的 id 属性值相同

property 属性用于指定 JavaBean 实例对象的属性名

如果一个 JavaBean 实例对象的某个属性的值为 null,那么,使用 <jsp:getProperty> 标签输出该属性的结果将是一个内容为 “null” 的字符串

  • <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  • <%
  • String path = request.getContextPath();
  • String basePath = request.getScheme() + "://"
  • + request.getServerName() + ":" + request.getServerPort()
  • + path + "/";
  • %>
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  • <html>
  • <head>
  • <base href="<%=basePath%>">
  • <title>My JSP 'circle.jsp' starting page</title>
  • <meta http-equiv="pragma" content="no-cache">
  • <meta http-equiv="cache-control" content="no-cache">
  • <meta http-equiv="expires" content="0">
  • <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  • <meta http-equiv="description" content="This is my page">
  • </head>
  • <body>
  • <jsp:useBean id="circle" class="cn.edu.wic.jsp.bean.Circle" scope="page" />
  • <jsp:setProperty name="circle" property="radius" param="radius"/>
  • <%-- param接收参数 http://xxxxx.jsp?radius=value --%>
  • <h1>
  • Circle's radius is <jsp:getProperty property="radius" name="circle"/><BR>
  • Circle's Length is <jsp:getProperty property="length" name="circle"/><BR><!-- 自动调用getLength()方法 -->
  • Circle's Area is <jsp:getProperty property="area" name="circle"/><!-- 自动调用getArea()方法 -->
  • <%--自动获取get+property参数中首字母大写的方法 --%>
  • </h1>
  • </body>
  • </html>

Archives Tip
QR Code for this page
Tipping QR Code