JavaBean技术

JavaBean技术

JavaBean技术最初是面向Swing等GUI而设计的,后来经过用于Web开发上.

使用JavaBean

JavaBean主要设计3个JSP动作:

1
<jsp:useBean id="对象名" class="类型" scope="范围[request | page | session | application]"/>
1
2
3
4
5
6
<jsp:setProperty name="对象名" property="* | 相关属性" value = ""></jsp:setProperty>
<!--
*:自动匹配表单中的能匹配的属性名
相关属性: 请确保和bean类中的私有属性名一样
value:可选,如果省略,则自动匹配表单中同名的输入域(text input)
-->
1
<jsp:getProperty name="对象名" property="相关属性"/>

1.编写JavaBean类

编写JavaBean类需要注意:

  • 为每一个字段都设置为private,且提供settergetter
  • 创建默认构造方法
  • 请将javabean放在包里面,不要使用defaultPackage
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
package bean;

public class Rectangle {
private double width;
private double length;
private double area;
private double perimeter;

public double getArea() {
area = width * length;
return area;
}

public double getLength() {
return length;
}

public double getWidth() {
return width;
}

public void setArea(double area) {
this.area = area;
}

public void setLength(double length) {
this.length = length;
}

public double getPerimeter() {
perimeter = 2 * (width + length);
return perimeter;
}

public void setWidth(double width) {
this.width = width;
}

public void setPerimeter(double perimeter) {
this.perimeter = perimeter;
}
public Rectangle(){

}
}

2.设计JSP页面引用JavaBean

请求端页面关键代码:

1
2
3
4
5
<form action="result.jsp" method="post">
长:<input type="text" name = "length"/><br/> <!-- 注意要和Rectangle类中的length字段同名-->
宽:<input type="text" name = "width"/><br/> <!-- 注意要和Rectangle类中的width字段同名-->
<input type="submit" value="计算">
</form>

响应端页面关键代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<jsp:useBean id="rectangle" class="bean.Rectangle" scope="request"/>	
<!-- 创建一个Rectangle对象,对象名为:rectangle -->
<!-- 相当于 Rectangle rectangle = new Rectangle() -->

<jsp:setProperty name="rectangle" property="*"></jsp:setProperty>
<!-- 设置rectangle对象可匹配属性值,相当于下面代码 -->
<jsp:setProperty name="rectangle" property="width"></jsp:setProperty>
<jsp:setProperty name="rectangle" property="length"></jsp:setProperty>
<!-- 也相当于下面的代码 -->
<jsp:setProperty name="rectangle" property="width" value='<%= Double.parseDouble(request.getParameter("width"))%>'></jsp:setProperty>
<jsp:setProperty name="rectangle" property="length" value='<%= Double.parseDouble(request.getParameter("length"))%>'></jsp:setProperty>


<!-- 获取rectangle对象属性值 -->
面积:<jsp:getProperty name="rectangle" property="area"/><br/>
周长:<jsp:getProperty name="rectangle" property="perimeter"/><br/>