论坛首页 入门技术论坛

JavaBean的使用

浏览 4295 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-04-01   最后修改:2009-11-04
欢迎访问: http://www.ptcms.cn


JavaBean:
实质上就是一种Java类,但不包含main方法,主要是为了实现代码重用。
JavaBean通常封装一些属性和方法,实现业务逻辑,进行数据库连接等,将业务逻辑和一些需要反复使用的代码从显示中分离出来。
 创建JavaBean的一般模式:
package  jsp.demo;

public class BeanName{
//封装属性
private String attr1;
private int attr2;


//对外的属性访问方法
public String getAttr1(){
  return attr1;
}

public void setAttr1(String attr1){
  this.attr1=attr1;
}

……

// 实现其它功能的方法

}
 编写JavaBean时,必须满足一些要求:
 JavaBean必须放在一个包中,即必须包含package
 JavaBean必须声明成public的类,则文件名与类名也应一致
 属性应该封装起来,即声明为private
 对于属性的访问通过get、set方法实现,这些方法应为public的,并且一定要符合命名规范。
例如:若属性名为  userName ,
则get、set方法名应为  getUserName和setUserName
 使用<jsp:useBean>去调用JavaBean时,需要创建其对象,故JavaBean必须有一个无参的构造方法
 JSP中使用JavaBean:
<jsp:useBean
id=”bean的名称”      //bean:即由JavaBean类实例化出来的对象
class=”用包名结构表示的bean所属类的类名”
scope=”bean的使用范围”  //4种之一:page、request、session、application
/>

 将表单参数值传给JavaBean的实例:
<jsp:setProperty name=”所使用的bean的名称”  property细节 />


示例:实现四则运算,将运算逻辑从JSP页面中分离出来

分析:
(1) 显示部分:提供用户输入域和显示结果,JSP负责
 输入2个数据的文本框
 操作符列表

(2) 逻辑部分:2个数据进行+、-、*、/ 四则运算,JavaBean负责

实现过程:
(1) 创建JavaBean类Calculate,包含3个属性分别代表运算数1、运算数2和运算符;包含各属性的get、set方法;包含完成四则运算的方法。

(2) 创建cal.jsp页面,设计表单,表单提交给本页处理,显示计算的结果。

 表单参数:2个运算数、1个操作符   Calculate的实例
<%@ page import="l17.Calculate"  %>

<jsp:useBean id="cal" class="l17.Calculate" scope="page"></jsp:useBean>

<%-- 表单参数名与bean的属性名不同时,需要分别指定 --%>
<jsp:setProperty name="cal" property="one" param="first" />
<jsp:setProperty name="cal" property="two" param="second" />


<%-- 表单参数名与bean的属性名相同时,只指定属性名即可将同名的参数值传给该属性 --%>
<jsp:setProperty name="cal" property="op" />


<%-- 若表单参数的名称与bean属性的名称都是一一对应的(即名称相同),
则在 setProperty 标签的中可以使用 property="*" 让其自动传值

但:各属性的set方法必须是规范命名的,否则传值失败

--%>
 调用 Calculate 的运算方法进行计算
 调用 Calculate 的方法显示结果

计算结果:
<%
if (request.getParameter("submit") != null) {
//表单提交后才计算并显示结果

try {

cal.calculate();

} catch (Exception e) {

out.println(e.getMessage());
}
%>

<%=cal.getOne()%>
<%=cal.getOp()%>
<%=cal.getTwo()%>
=
<%=cal.getResult()%>

<%
} //end of if(request.getParameter("submit") != null)
%>

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics