获取JavaBean的属性(附带实例)
在 JavaBean 类中,为了防止外部对象直接调用 JavaBean 属性,通常将 JavaBean 中的属性设置为私有的。但同时需要为属性提供公共的访问方法,也就是 getter() 方法。
<jsp:useBean> 标记用于在指定的作用域范围内查找指定名称的 JavaBean 类实例化的对象:
<jsp:useBean> 的语法形式如下:
<jsp:getProperty> 标记用于读取 JavaBean 实例化对象的属性,也就是调用 JavaBean 对象的 getter() 方法。然后将其读取的属性值转换成字符串后插入输出的响应正文中。
<jsp:getProperty> 的语法形式如下:
【实例】在 JSP 页面中显示 JavaBean 对象的属性信息。
首先创建名称为 Person 的 JavaBean 类。在 Person 类中创建所需属性,并提供相应的 getter() 方法和 setter() 方法。核心代码如下:
然后创建 JSP 页面 Person.jsp。在该页面中通过 JSP 的动作标记来获取 JavaBean 对象的属性信息。核心代码如下:
在 JSP 页面中,主要通过 <jsp:useBean> 标记实例化 Person 类的 JavaBean 对象,然后使用 <jsp:getProperty> 标记获取 JavaBean 对象中的属性信息,其页面运行效果如下图所示。
<jsp:useBean> 标记用于在指定的作用域范围内查找指定名称的 JavaBean 类实例化的对象:
- 如果存在,则直接返回该 JavaBean 对象的引用;
- 如果不存在,则实例化一个新的 JavaBean 对象,并将它以指定的名称存储到指定的作用域范围中。
<jsp:useBean> 的语法形式如下:
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
- id 属性用于指定 JavaBean 实例化对象的引用名称和其存储在作用域范围中的名称;
- class 属性用于指定 JavaBean 类的完整类名(即必须带有包名的类名);
- scope 属性用于指定 JavaBean 实例化对象所存储的作用域范围只能是 page、request、session 和 application 4 个值中的 1 个,其默认值为 page。
<jsp:getProperty> 标记用于读取 JavaBean 实例化对象的属性,也就是调用 JavaBean 对象的 getter() 方法。然后将其读取的属性值转换成字符串后插入输出的响应正文中。
<jsp:getProperty> 的语法形式如下:
<jsp:getProperty name="beanInstanceName" property="PropertyName" />
- name 属性用于指定 JavaBean 实例化对象的名称,其值应与 <jsp:useBean> 标记的 id 属性值相同;
- property 属性用于指定 JavaBean 实例化对象的属性名。
【实例】在 JSP 页面中显示 JavaBean 对象的属性信息。
首先创建名称为 Person 的 JavaBean 类。在 Person 类中创建所需属性,并提供相应的 getter() 方法和 setter() 方法。核心代码如下:
/**
* Person 类就是一个简单的 JavaBean
*/
public class Person {
// ------------------ Person 类封装的私有属性 ------------------------------
/** 姓名,String 类型 */
private String name = "SimpleLee";
/** 性别,String 类型 */
private String sex = "女";
/** 年龄,int 类型 */
private int age = 30;
/** 是否已婚,boolean 类型 */
private boolean married = true;
// ------------------ 构造方法 ------------------------------------------
/**
* 无参数构造方法
*/
public Person() {
}
// ------------------ 对外提供的用于访问私有属性的方法 ----------------------
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// 修正方法名拼写:getMaried → getMarried
public boolean getMarried() {
return married;
}
public void setMarried(boolean married) {
this.married = married;
}
}
然后创建 JSP 页面 Person.jsp。在该页面中通过 JSP 的动作标记来获取 JavaBean 对象的属性信息。核心代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PersonJSP</title>
</head>
<body>
<jsp:useBean id="person" class="jspSamples.unit5.javaBeanSamples.Person" scope="page" />
<div>
<ul>
<li>姓名:<jsp:getProperty property="name" name="person"/></li>
<li>性别:<jsp:getProperty property="sex" name="person"/></li>
<li>年龄:<jsp:getProperty property="age" name="person"/></li>
<li>已婚:<jsp:getProperty property="married" name="person"/></li>
</ul>
</div>
</body>
</html>
在 JSP 页面中,主要通过 <jsp:useBean> 标记实例化 Person 类的 JavaBean 对象,然后使用 <jsp:getProperty> 标记获取 JavaBean 对象中的属性信息,其页面运行效果如下图所示。

ICP备案:
公安联网备案: