求高手详细讲解下子、有两个 java 文件、一个JSP页面、对这些 我非常非常不懂、这些是个啥意思、、求详细分析下子、、、牵扯到得知识点也帮忙指出来好不、(求详解)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 temp = name;
this.name = name;
support.firePropertyChange("name", temp, name);
}
public String getName(){
return name;
}
}Listen.java 文件
package com;
import java.beans.*;public class Listen implements PropertyChangeListener{ private String inform;
public Listen(){
inform = "Bean中的属 性值没有变化";
}
public void propertyChange(PropertyChangeEvent event){
inform = "Bean中的属性值发生了变化";
}
public String getInform(){
return inform;
}
}listen.jsp文件<%@ page language="java" import="com.*" pageEncoding="GBK"%>
<%
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>Bound属性测试</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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<%
Bound bound = new Bound();
Listen listen = new Listen();
bound.setName("张三");
%>
<%=bound.getName() %><br/>
<%
bound.addPropertyChangeListener(listen);
bound.setName("李四");
%>
<%=listen.getInform()
%><br/>
<%=bound.getName() %>
</body>
</html>
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 temp = name;
this.name = name;
support.firePropertyChange("name", temp, name);
}
public String getName(){
return name;
}
}Listen.java 文件
package com;
import java.beans.*;public class Listen implements PropertyChangeListener{ private String inform;
public Listen(){
inform = "Bean中的属 性值没有变化";
}
public void propertyChange(PropertyChangeEvent event){
inform = "Bean中的属性值发生了变化";
}
public String getInform(){
return inform;
}
}listen.jsp文件<%@ page language="java" import="com.*" pageEncoding="GBK"%>
<%
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>Bound属性测试</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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<%
Bound bound = new Bound();
Listen listen = new Listen();
bound.setName("张三");
%>
<%=bound.getName() %><br/>
<%
bound.addPropertyChangeListener(listen);
bound.setName("李四");
%>
<%=listen.getInform()
%><br/>
<%=bound.getName() %>
</body>
</html>
JSP中代码很简单,用脚本创建了Bound对象和Listen对象,测试属性修改事件的效果。
展示了JavaBean Event机制和JSP中使用脚本的能力。