首页 > Java开发 > JSP中JavaBean的应用

JSP中JavaBean的应用

java server pages(jsp)组件技术的核心是被称为bean的java 组件.bean的结构必须满足一定的命名约定。JavaBean类似于ActiveX控件:他们都能提供常用功能并且可以重复使用。这些约定由sun和其 他几个大公司制定,称为javabeans API.只要遵守java beansAPI的命名约定,就可以开发出可重用的,独立的java组件。在jsp中,使用bean标签集合,内容开发者不需要编写任何代码就能利用 java 强大的功能为页面添加动态元素。 在JSP的开发中往往把大段的代码放在脚本片段(scriptlet)内,但是绝大多数的Java代码属于可重复使用的(如数据库的连接待),因此可以把 这此重复的代码做成JavaBea的组件。JavaBean的值是通过一些属性获得的,你可通过这些属性访问JavaBean设置。现把在jsp中怎么调 javaBean介绍如下:

要在JSP使用"Bean",首先必须在jsp设置要引用的Bean,生成Bean的一个实例。可以用“$#@60;jsp:useBean$#@62;”标记来完成:

$#@60;jsp:useBean id="Name" scope="application" ;。

"$#@60;jsp:useBean$#@62;"标记是通过“id”属性来识鉴别Bean。当指定了"id"属性后,还须告诉网页面从何处 查找Bean,或者它的Java类别名是什么。最后一个必需的元素是“scope”属性。有了“scope”属性的帮助,你就能告诉Bean为单一页面 (默认情况)[scope="page"]、为一个被请求的网页[scope="request"]、请求为会话[scope="session"],或 者为整个应用程序[scope="application"]保持留信息。有了会话范围,你就能非常容易地在JSP网页面上维护网站上的项目,如购物车项 目等。

实例化一个JavaBean,就可以访问它的属性来定制它。要获得属性值,请用“$#@60;jsp:getProperty$#@62;”标 记。使用这个标记能指定将要用到的Bean名称(从useBean的"id"字段得到)以及你想得到其值的属性。实际的值被放在输出中:

$#@60;jsp:getProperty id="Name" property="name" ;。

要改变JavaBean属性,你必须使用“$#@60;jsp:setProperty$#@62;”标记。对这个标记,需要再次识别Bean和其属性,以修改并额外提供新值。如果命名正确,这些值可以从一个已提交的表中直接获得:参数获得:

$#@60;jsp:setProperty id="Name" property="*" ;;

可以从一个参数获得,? 须直接命名属性和参数:

$#@60;jsp:setProperty id="Name" property="serialNumber" value="string" ;

或者直接用一个名字称和值来设置:

$#@60;jsp:setProperty id="Name" property="serialNumber" value= $#@60;%= expression %$#@62; ;.

关于JavaBean 的最后一件事: 为了Web服务器能找到JavaBean,你需要将其类别文件放在WEB服务器的一个特殊位置。在resin中是放在"doc\WEB-INF\classes"目录下的。

实例:这个简单的例子是完成对产品及税率的设置与获取。

package tax;
public class TaxRate{
String Product;
double Rate;
public TaxRate(){
this.Product = "A001";
this.Rate = 5;}
public void setProduct (String ProductName)
{this.Product = ProductName;}
public String getProduct(){return(this.Product);}
public void setRate (double rateValue)
{
this.Rate = rateValue;
}
public double getRate()
{
return (this.Rate);
}
}

sample_bean.jsp
$#@60;%@ page language="java" import="tax.*" %$#@62;
$#@60;HTML$#@62;
$#@60;BODY$#@62;
$#@60;jsp:useBean id="TaxRate" scope="application" ;
修改前:
$#@60;br$#@62;
产品 : $#@60;jsp:getProperty name="TaxRate" property="Product" ;
$#@60;br$#@62;
税率 : $#@60;jsp:getProperty name="TaxRate" property="Rate" ;

$#@60;jsp:setProperty name="TaxRate" property="Product" value="Hello" ;
$#@60;jsp:setProperty name="TaxRate" property="Rate" value="2.9" ;
修改后:
$#@60;br$#@62;
产品 : $#@60;jsp:getProperty name="TaxRate" property="Product" ;
$#@60;br$#@62;
税率 : $#@60;jsp:getProperty name="TaxRate" property="Rate" ;

$#@60;/BODY$#@62;$#@60;/HTML$#@62;

把TaxRate.java放到resin的"doc\WEB-INF\classes\doc"目录下,sample_bean.jsp放入 resin的doc目录下。在浏览器下运行:即可看到效果。从以上的讲解及应用可以看出:由于组件技术的使用和JAVABEANS API的引入,JSP让JAVA开发者可以将一个站点快速地分解为一些细小的、可重用的组件。这些组件作为HTML元素,用于JSP的各个需要地方。这一 实现让开发工作清楚地分为表现与内容两个部分。


本文固定链接: http://www.devba.com/index.php/archives/97.html | 开发吧

报歉!评论已关闭.