什么是 JavaBean ?(Java豆)
在 JSP 中 使用 JavaBean。
三个标签:
1 2 3
| <jsp:useBean id="JavaBean的标识符" class="JavaBean的全类名" scope="作用范围"></jsp:useBean> <jsp:setProperty property="属性名(键)" value="属性值" name="JavaBean的标识符" /> <jsp:getProperty property="属性名(键)" name="JavaBean的标识符" />
|
1. JavaBean
用作 JavaBean 的类的要求:
- ① 必须有一个公共的、无参的构造方法(利用 反射 创建该类的对象时必须的)
- ② JavaBean 的属性以方法定义的形式出现
- ③ 对属性赋值的方法称为属性修改器或 setter 方法,获取属性值的方法称为属性访问器或 getter 方法
- ④ userName 的 setter 方法名为:setUserName,password 的 getter 方法名为 getPassword
- ⑤ JavaBean 的属性名根据 getter 和 setter 方法名生成,方法名去掉”get“或”set“,剩余部分首字母小写即为属性名
以下就是一个典型的 JavaBean 类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| package com.crd.design.domain;
public class User { private int userId; private String userName; private String userPassword; private String userSalt; private String userEmail; public User() { super(); } public User(int userId, String userName, String userPassword, String userSalt, String userEmail) { super(); this.userId = userId; this.userName = userName; this.userPassword = userPassword; this.userSalt = userSalt; this.userEmail = userEmail; } public User(String userName, String userPassword, String userEmail) { super(); this.userName = userName; this.userPassword = userPassword; this.userEmail = userEmail; } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPassword() { return userPassword; } public void setUserPassword(String userPassword) { this.userPassword = userPassword; } public String getUserSalt() { return userSalt; } public void setUserSalt(String userSalt) { this.userSalt = userSalt; } public String getUserEmail() { return userEmail; } public void setUserEmail(String userEmail) { this.userEmail = userEmail; } @Override public String toString() { return "User [userId=" + userId + ", userName=" + userName + ", userPassword=" + userPassword + ", userSalt=" + userSalt + ", userEmail=" + userEmail + "]"; } }
|
2. JSP中应用 JavaBean
对于 JSP 页面来说,只要是一个类有一个公共的、无参的构造方法,该类就可以用作创建 JavaBean 对象。该类中不接受任何参数的 getter 方法和 只接受一个参数的 setter 方法,都可以当作该类对象的属性名来引用。
A.相关标签
| 标签 |
作用 |
| <jsp:useBean> |
创建和查找 JavaBean 实例对象 |
| <jsp:setProperty> |
设置 JavaBean 对象的属性 |
| <jsp:getProperty> |
读取 JavaBean 对象的属性 |
B.<jsp:useBean>
<jsp:useBean>用法:
用于在某个指定(scope属性指定)的域范围(application、session、request、pageContext等)内查找一个指定(id属性指定)名称的 JavaBean 对象,若查到则返回该对象的引用,若不存在则实例化一个新的 JavaBean 对象(class属性指定)并将它存进 scope 属性 指定的域范围内。
语法:
1 2
| <jsp:useBean id="beanInstanceName" class="package.class" scope="page|request|session|application"></jsp:useBean> <%-- scope只能取上述四个值,page 为默认值 --%>
|
另一种用法:(此时返回的bean是Object类型的对象)
1
| <jsp:useBean id="beanInstanceName" beanName="package.class" type="java.lang.Object" scope="page|request|session|application"></jsp:useBean>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <jsp:useBean id="user" class="com.crd.design.domain.User" scope="session"></jsp:useBean> <%--以上代码相当于如下: <% User user = (User)session.getAttribute("user"); if(user == null){ user = (User)Class.forName("com.crd.design.domain.User").newInstance(); session.setAttribute("user", user); } %> --%> <%-- useBean之后就可以使用该bean对象,如: --%> <% user.setUserName("CRainyDay"); %>
|
C.<jsp:setProperty>
<jsp:setProperty>用法:
给指定(name属性指定)的 JavaBean 对象的 指定(property属性指定)属性 赋指定(value属性指定)的属性值。
语法:
1
| <jsp:setProperty property="属性名" value="属性值" name="id指定的bean对象" />
|
1 2 3 4 5 6 7
| <jsp:useBean id="user" class="com.crd.design.domain.User" scope="session"></jsp:useBean> <jsp:setProperty property="userName" value="crainyday" name="user" /> <%--以上代码相当于如下: <% user.setUserName("crainyday"); %> --%>
|
setProperty 的特殊用法:
若 property 属性值为 ”*“,省略 value 属性,则会自动为对应 JavaBean 对象的所有属性赋值为对应的请求参数的值。
1 2 3 4 5 6
| <%--例:请求参数为 ?userName="crainyday"&userId=12&userPassword="crainyday"--%> <jsp:useBean id="user" class="com.crd.design.domain.User" scope="session"></jsp:useBean> <jsp:setProperty property="*" name="user" /> <%--这样做进一步简化了开发, 否则,必须先从request中取出对应参数的值, 然后为JavaBean对象对应属性赋值--%>
|
D.<jsp:getProperty>
<jsp:getProperty>用法:
获取指定(name属性指定)的 JavaBean 对象的 指定(property属性指定)属性 的属性值。
语法:
1
| <jsp:getProperty property="属性名" name="id指定的bean对象" />
|
1 2 3 4 5
| <jsp:useBean id="user" class="com.crd.design.domain.User" scope="session"></jsp:useBean> <jsp:getProperty property="userName" name="user" /> <%--以上代码相当于如下: <%= user.getUserName()%> --%>
|
3.利用eclipse快速开发JavaBean

- ②在该类中右键单击,然后点击源码,再点击生成 Getter 和 Setter 方法,选择要生成方法的字段即可生成对应的 Getter、Setter方法。
