JavaBean
JavaBean
一、javabean概述
Javabean是一个java类
三个接口
usebean
getProperty
getPrperty
接口示例
<jsp:useBean id="test" class="SimleBean" />
// 表示定义一个java bean的实例,实例的名称是test,类的名称是SimleBean。
<jsp:setProperty name="test" property="message" value="Hello JSP"/>
// 表示设置实例test的属性message,其值是"Hello JSP"。
<jsp:getProperty name="test" property="message" />
// 表示在页面中输出实例test的属性message的值。
二、javabean定义
1. <jsp:useBean>
<jsp:useBean id="beanInstanceName"
scope="page | request | session | application"
class="package.class"
other elements
/>
javaBean是特殊类型的java类,它与普通java类相比主要区别是包含了两种特殊的方法:set…(设置属性的方法)、get…(取属性值的方法)。
<jsp:useBean>动作用来查找或实例化一个jsp页面使用的JavaBeans组件。在程序中可把逻辑控制、数据库操作放在javabeans组件中,然后在jsp文件中调用它,这样可增加程序的清晰度及程序的可重用性。
(1)id="beanInstanceName" 用来绑定Bean实例的变量。
(2)class|type="package.claaa" 表明该bean具体是对哪个类的实例化。
(3)scope="page | request | session | application" 表示该bean的有效范围。
Page:实例的有效范围是当前页面。
Request:实例的有效范围是一个单独客户请求的生命周期内。
Session:实例的有效范围是整个用户会话的生命周期内。
Application:实例的有效范围是应用的生命周期内。
2. <jsp:setProperty>
<jsp:setProperty name="beanInstanceName"
property="*" | property ="propertyName"
value="具体的值"
/>
该动作的含义是使用bean中相应的set()方法设置一个或多个属性的值,值的来源是通过value属性明确给出,或者利用request对象中相应的参数。
假设某个bean有一个string类型的可被JSP文件使用的属性myProperty,则它必须有一个public方法setMyProperty(string value),<jsp:setProperty>动作使用的就是该方法。
(1) name="beanInstanceName" 这个属性是必须的,用来表明对哪个bean实例执行下面的动作,这个值和动作<jsp:useBean>中定义的id必须对应起来,包括大小写都必须一致。
(2) property="*" | property ="propertyName" 这个属性是必须的,用来表示要设置哪个属性。如果property的值是"*",表示用户在可见的JSP页面中输入的全部值,存储在匹配的bean属性中。匹配的方法是:bean的属性名称必须与输入框的名字相同。
(3) value="具体的值" 它用来指定bean的属性的值。
3. <jsp:getProperty>
<jsp:getProperty name="beanInstanceName" property="propertyName"/>
这个动作提取指定bean属性的值,转换成字符串,然后输出。该动作实际是调用了bean的get()方法。
按上文提到的某个bean有一个string类型的可被JSP文件使用的属性myProperty,它必须有一个返回类型为string的public方法getMyProperty()。<jsp:getProperty>使用的就是这个方法。
(1)name="beanInstanceName" 这个属性是必须的,用来表明对哪个bean实例执行下面的动作,这个值和动作<jsp:useBean>中定义的id必须对应起来,包括大小写都必须一致。
(2)property="*" | property ="propertyName" 这个属性是必须的,用来表示要获取哪个属性。
三、jsp中调用javabean示例
生成java类设置变量的set和get属性,为了在jsp中javabean进行set和get置值和取值用。
goodsbean.java //java类文件
package sale; //sale为包名不可缺少,在*.jsp文件中用到
public class goodsbean{ //goodsbean类中定义变量
String Product;
double Price;
public goodsbean (){
this.Product = "box";
this.Price = 5.0;
}
public void setProduct (String ProductName){ //变量的set属性
this.Product = ProductName;
}
public String getProduct(){//变量的get属性
return (this.Product);
}
public void setPrice (double priceValue){
this.Price = priceValue;
}
public double getPrice(){
return (this.Price);
}
}
编译完生成的.class文件,放到:Tomcat \webROOT\WEB-INF\ 目录下。
在*.Jsp文件中调用javabean方法:
<%@ page contentType="text/html;charset=”utf-8”%>
<head>
<title>goodsbean</title>
</head>
<body>
<jsp:useBean id="goodsbean" scope="application" class="sale.goodsbean" />
<%
使用方法1:
goodsbean.setProduct("clock");
goodsbean.setPrice(17);
%>
使用方法2:
<jsp:setProperty name="goodsbean" property = "Product" />
<br>
<jsp:setProperty name="goodsbean" property = "Price" />
<%
使用方法1:
产品:<%= goodsbean.getProduct()%><br>
税率:<%= goodsbean.getPrice()%>
%>
<br>
使用方法2:
产品:<jsp:getProperty name="goodsbean" property = "Product" />
<br>
税率:<jsp:getProperty name="goodsbean" property = "Price" />
</body>
</html>
注意 设置bean的属性如下
<jsp:setProperty name="goodsbean" property = "Product" value="asdf"/>
<jsp:setProperty name="goodsbean" property = "Price" value="adad" />
技巧一:
先生成java类定义变量的set和get属性,文件*.java;
Dreamweaver布局客户端的htm表单,文件*.htm;
生成接收客户端htm表单并使用javabean显示内容的jsp文件,文件*.jsp;
<jsp:useBean id="goodsbean" scope="application" class="sale.goodsbean" />中class为具体全包名的类。