useBean动作标签
这个标签是笔者认为最重要的标签,所以放在了最后。
首先介绍Java Bean的特点:
可以实现代码服用,易编写,易维护,易使用,可以在任何有JVM的机器上使用而不许重新编译。
1.编写JavaBean的规则:
(1)如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值在类中可以定义两个方法:
getXxx()来获取属性和setXxx()来设置属性,要注意大小写。
(2)对于boolean类型的成员变量,允许使用is来代替get和set。
(3)类中的方法属性必须是Public的。
(4)类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。
例:一个简单bean
Circle.java:
import java.io.*;
public class Circle
{ int radius;
public Circle()
{ radius=1;
}
public int getRadius()
{ return radius;
}
public void setRadius(int newRadius)
{radius=newRadius;
}
public double circleArea()
{return Math.PI*radius*radius;
}
public double circlLength()
{return 2.0*Math.PI*radius;
}
}
2.使用beans
使用beans时就要用到useBean标签了,其格式为:
<jsp:useBean id=-“给bean起的名字”class=”创建beans的类”scope=”bean 有效范围”>
</jsp:useBean>
其中scope的属性值需要注意一下:
Scope取page:则即当客户使用bean时为每个客户占用不同的空间,简单说bean是不共享的,用户不能互相干涉。当用户离开该访问页时无效。
Scope取session:即该bean是共享的,所有用户访问时将对同一个bean操作,会互相干涉。当客户关闭浏览器时无效。
Scope取request:只当用户访问时有效,且不是共享的。当客户请求时作出相信,相应完后无效。
Scope取application:共享bean,当服务器关闭时该bean无效。
最后,若要使用bean还必须导入其类,可用命令:
<@page import=”className”>
例:Circle为一个类文件名。
useBeans.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="Circle"%>
<HTML>
<BODY bgcolor=cyan><Font size=1>
<jsp:useBean id="girl" class="Circle" scope="page" >
</jsp:useBean>
<%--通过上述JSP标签,客户获得了一个作用域是page,名字是girl的beans --%>
<% //设置圆的半径:
girl.setRadius(100);
%>
<P>圆的半径是:
<%=girl.getRadius()%>
<P>圆的周长是:
<%=girl.circlLength()%>
<P>圆的面积是:
<%=girl.circleArea()%>
</BODY>
</HTML>
3 获取和修改beans的属性
getProperty和setProperty可完成该命令。
格式分别为:
<jsp:getProperty name=”bean的名字” property=”beans的属性” />
<jsp:setProperty name=”bean的名字” property=”beans的属性” />
一个综合的例子:
student.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="Student"%>
<HTML>
<BODY bgcolor=cyan><Font size=1>
<jsp:useBean id="zhang" class="Student" scope="page" >
</jsp:useBean>
<jsp:setProperty name= "zhang" property="name" value="张小三" />
<P>名字是:
<jsp:getProperty name= "zhang" property="name" />
<jsp:setProperty name= "zhang" property="number" value="1999001" />
<P>学号是:
<jsp:getProperty name= "zhang" property="number" />
<% double height=1.70;
%>
<jsp:setProperty name= "zhang" property="height" value="<%=height+0.05%>" />
<P>身高是:
<jsp:getProperty name= "zhang" property="height" />
米
<jsp:setProperty name= "zhang" property="weight" value="67.65" />
<P>体重是:
<jsp:getProperty name= "zhang" property="weight" />
公斤
</FONT>
</BODY>
</HTML>