`

JavaBean - Bound属性

 
阅读更多

 

4.4.3  Bound属性

Bound属性表示当该种属性的值发生变化时,会自动触发PropertyChange事件,通知其他的对象该属性发生了变化。事件中封装了属性名、属性的原值、属性变化后的新值。

下面给出一个例子说明Bound属性的用法:编写一个JavaBean,用于接收name变量,当name变量值发生变化时,在页面中显示出变化情况。

首先建立JavaBean,类文件名为Bound.java,文件代码如代码4-9所示。

代码4-9  Bound.java

package com; 
import java.beans.*;
public class Bound {
private String name;
/*向监听者对象发送信息*/
private PropertyChangeSupport support=new PropertyChangeSupport(this);
public Bound(){
}
/*事件监听者对象和Bound对象绑定起来,并把它添加到监听者队列中去*/
public void addPropertyChangeListener(PropertyChangeListener listener){
if(support==null){
support=new PropertyChangeSupport(this);
}
support.addPropertyChangeListener(listener);  
}
/*从监听者队列中移除监听者对象*/
public void removePropertyChangeListener(PropertyChangeListener listener){
if(support==null){
support=new PropertyChangeSupport(this);
}
support.removePropertyChangeListener(listener);  
}
public void setName(String name){
String tmp=name;
this.name=name;
/*通知监听者队列里的所有事件监听者对象当前对象的属性值改变的事件*/
support.firePropertyChange("name",tmp,name);
}
public String getName(){
return name;
}
}

监听者为Listen.java类,文件代码如代码4-10所示。

代码4-10  Listen.java

 

package com; 
import   java.beans.*;
public class Listen implements   PropertyChangeListener{
private String inform;
 public Listen(){
inform="Bean中的属性值没有变化";
}
/*属性值变化后触发的事件*/
public void propertyChange(PropertyChangeEvent evt){
inform="Bean中的属性值发生了变化";
}
public String getInform(){
return inform;
}
}<%@ page contentType="text/html;charset=GBK" %>

显示属性变化的页面为listen.jsp,文件代码如代码4-11所示。

 

代码4-11  listen.jsp

<%@ page contentType="text/html;charset=GBK" %> 
<%@ page import="com.Bound" %>
<%@ page import="com.Listen" %>
<html>
<head>
<title>Bound 测试</title>
<head>
<body>
<%
Bound bound=new Bound();
Listen listen=new Listen();
bound.setName("张三");
%>
<p><b>name = <%=bound.getName()%></b>
<%
bound.addPropertyChangeListener(listen);
bound.setName("李四");
%>
<hr><%=listen.getInform()%>
<hr><b>name = <%=bound.getName()%></b>
</body>
</html>
分享到:
评论

相关推荐

    javabean属性资料

    Constrained属性比Bound属性更进一步,它不仅会在属性值改变时通知其他对象,而且在值被设置之前还会进行验证。如果新值不符合预设的约束条件,那么属性的值不会改变,并且会触发一个`VetoableChangeEvent`。这允许...

    第5章 JSP与JavaBean

    - **Bound属性**:当其值改变时,会触发PropertyChange事件,通知其他对象这一变化。事件包含属性名、原值和新值。监听器通过实现PropertyChangeListener接口来接收和处理这些事件。 - **Constrained属性**:在属性...

    JavaBean的属性

    JavaBean的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的...在JavaBean设计中,按照属性的不同作用又细分为四类:Simple, Index, Bound与Constrained属性。

    Java软件开发实战 Java基础与案例开发详解 5-8 javaBean 共5页.pdf

    - **监听器**:对于需要监听属性变化的情况,可以使用Bound属性和相应的监听器模式。 综上所述,JavaBean是Java开发中非常重要的一个概念,它不仅有助于提高代码的结构化和模块化,而且还能简化复杂系统的开发和...

    JavaBean 属性

    总结来说,JavaBean 的四种属性类型——Simple、Indexed、Bound 和 Constrained——各自具有不同的特点和应用场景。理解这些属性类型对于开发高质量的 JavaBean 组件至关重要。通过合理利用这些属性类型,开发者可以...

    第六单元 在JSP中应用JavaBean.pdf

    - **Bound属性**:当属性值改变时,能够通知外部观察者。这通常与Java的事件模型相结合使用。 - **Constrained属性**:对于属性值有一定的约束条件,例如只能取某个范围内的值。 #### 在JSP中使用JavaBean 将...

    清华大学javaBean课件

    3. Bound属性:当属性值改变时,会通知其他对象。例如,每次属性值更改后,都会触发一个`PropertyChangeEvent`,包含属性名、原值和新值。 4. Constrained属性:在属性值即将改变时,允许其他与之关联的对象通过抛...

    JSP 内部培训教程

    - Bound属性:当属性值改变时通知监听器。 - Constrained属性:验证属性值是否合法。 八、Servlet技术 Servlet是Java Web应用的核心,它处理HTTP请求并生成响应。与JSP的关系是,JSP通常用于视图层,而Servlet主要...

    JavaBeans教程.pdf

    - **Bound属性**:Bound属性会在其值改变时触发一个`PropertyChangeEvent`。这使得其他监听此属性的对象能够得知变化并作出响应。例如,`alden3`类中的`ourString`是一个Bound属性,当其值改变时,会通过`changes....

    Java知识点总结

    - Bound Bean:当Bean的属性改变时,能够通知观察者。 - Constrained Bean:限制属性值的有效范围或格式。 3. **JSP与JavaBean的交互** - 在JSP页面中可以通过`&lt;jsp:useBean&gt;`、`&lt;jsp:setProperty&gt;`和`...

    项目课程复习题.doc

    - JavaBean的属性可以有`constrained`、`bound`和`id`属性,但没有`simple`属性。 12. **JavaBean种类**: - JavaBean主要有三种类型:实体Bean、会话Bean和消息Bean,分别对应不同的应用场景。 13. **Servlet的...

    泰豪软件招聘笔试题(java)new201102

    - **Bound属性**: 当属性值发生更改时,会触发`PropertyChangeEvent`事件。其他监听器可以通过监听这些事件来作出反应。 - **Constrained属性**: 这类属性的变化受到约束,即在属性值改变前,可以由外部对象通过抛出...

    Developing java Beans

    - **绑定属性(Bound Properties)**:当属性的值发生改变时,会触发事件通知其他对象进行响应。 - **受限属性(Constrained Properties)**:用于限制属性值的有效范围,通常通过验证器实现。 - **处理特定属性...

    jsp期末试题

    - **知识点:** JavaBean的属性主要包括`Indexed`, `Bound`和`Constrained`等,但没有`id`这种特定类型的属性,尽管`id`可以作为普通属性使用。 **21. JDBC功能** - **知识点:** JDBC的主要功能包括与数据库建立连接、...

    JSP期末考试题2008.pdf

    20. JavaBean属性:`Constrained`属性不是JavaBean的标准属性,标准属性包括`id`、`Indexed`和`Bound`。 21. JDBC基本功能:JDBC提供与数据库连接、执行SQL和处理结果集等功能,但不包括生成SQL语句,那是程序员的...

    JSP猜数游戏

    JavaBean的属性通常是私有的,通过公共的getter和setter方法来访问。在本例中,可以设计一个JavaBean来生成随机数,并提供一个方法来判断用户猜测的数字与实际数字的大小关系。 知识点3:随机数生成与比较 程序中...

    JSP程序设计考试答案.docx

    20. JavaBean属性:`id`、`Indexed`和`Bound`是JavaBean属性,而`Constrained`不是。 21. JDBC基本功能:JDBC不提供数据库连接池的功能。 22. Page指令:`&lt;%@ page %&gt;`应用于整个JSP页面,用于设置全局属性,但不...

Global site tag (gtag.js) - Google Analytics