【JavaEE】JavaBean技术--一个简单的例子

1. 简介

(1)JavaBean是一些可移植、可重用, 并可以组装到应用
程序中的Java类。
(2)能较好地实现后台业务逻辑和前台表示逻辑的
分离,使得JSP程序更加可读、易维护。

2. JavaBeans的设计

(1)命名规范
 <1>JavaBean类打包存放,并声明为public类。
 <2>如果属性(设置为private)的名字是xxxx,则相应的有用来
 设置和获得属性的两个方法,分别为:
  public void setXxxx(dataType data);
  public dataType getXxxx();
 <3>必须有一个无参数的构造函数(一般public型)。
(2)JavaBeans示例
   <1> 设计一个JavaBean(Box类):
   属性: length/width/height double类型
   方法: getXxxx和setXxxx (注:可自动生成)
          不带参数构造函数(初始化属性值)
          求体积函数getCV()
   <2>创建过程
     新建Web项目(TestBean)
   新建public class; ( Box.java, package beans )
   输入属性变量: double length,width,height;
   在代码编辑区右键→Source→Generate Getters and Setters →
select all 属性, public型→自动生成getXxxx和setXxxx;
  不带参数构造函数和求体积函数手工输入

public Box() {
length=0;
width=0;
height=0;
}
public double getCV() {
return length*width*height;
}

好的,已经完成创建了,下面要开始学习调用了,方法有点多,捋清楚咯

3.访问JavaBeans

方法一:Java方式

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="beans.Box;"%>
<HTML> <BODY>
<%
Box box=new Box();
box.setLength(3.0); box.setWidth(4.0); box.setHeight(5.0);
%>
长方体的长度为: <%=box.getLength()%> <br>
长方体的宽度为: <%=box.getWidth()%> <br>
长方体的高度为: <%=box.getHeight()%> <br>
<% out.println("长方体的容积为: "+box.getCV() ); %>
</BODY> </HTML>

方法二:使用JSP动作组件

<jsp:useBean> - 创建JavaBean实例
<jsp:setProperty> - 设置属性值
<jsp:getProperty> - 获取属性值
<1><jsp:useBean>
语法:
<jsp:useBean id= "给bean起的唯一标识"
class= "创建bean的java类"
scope= "bean有效范围" />
    [其中scope的值可以为:page (默认)、request、session、application]
示例:
<jsp:useBean id="box" class="beans.Box" scope="page">
</jsp:useBean>
<2><jsp:setProperty>
 语法:
<jsp:setProperty name="bean的id名称 property= "bean的属性"
value= "值或<%=expession%>" />
 示例:
 <jsp:setProperty name="box" property="length" value="3.0" />
 或
 <% double s=3.0; %>
<jsp:setProperty name="box" property="length"
value="<%=s%>" />
<3><jsp:getProperty>
 格式:
<jsp:getProperty name="bean的id名称" property= "bean的属性"/>
 示例:
 <jsp:getProperty name="box" property="length" />

是不是觉得有些烦躁了呢~ 还没完呢~ (●’◡’●),先放一个完整的例子

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="beans.Box;"%>
<HTML> <BODY>
<jsp:useBean id="box" class="beans.Box" scope="page" />
<jsp:setProperty name="box" property="length" value="3.0"/>
<jsp:setProperty name="box" property="width" value="4.0"/>
<jsp:setProperty name="box" property="height" value="5.0"/>
在JSP中使用JavaBean<br>
长方体的长度为: <jsp:getProperty name="box" property="length"/><br>
长方体的宽度为: <jsp:getProperty name="box" property="width"/><br>
长方体的高度为: <jsp:getProperty name="box" property="height"/><br>
<% out.println("长方体的容积为: "+box.getCV() ); %>
</BODY> </HTML>

4.JavaBean的参数传递

go on!!! (●’◡’●)

主页index.jsp如下,如实现JavaBean的参数传递呢???

<form action="test.jsp" ><input type="text" name="a"> <br><input type="text" name="b"> <br><input type="text" name="c"> <br>
<input type="submit" value="提交">
</form>

方法一:使用request.getParameter (不推荐,数据多时繁琐)

<jsp:useBean id="box" class="javaBean.Box" scope="page"/>
<%
double a=Double.parseDouble(request.getParameter("a"));
double b=Double.parseDouble(request.getParameter("b"));
double c=Double.parseDouble(request.getParameter("c"));
%>
<jsp:setProperty name="box" property="length" value="<%=a%>" />
<jsp:setProperty name="box" property="width" value="<%=b%>" />
<jsp:setProperty name="box" property="height" value="<%=c%>" />
<%=box.getCV() %>

方法二:使用param属性 (推荐)
使用前端页面的name属性来设置JavaBean属性值。
格式如下,发现没有,其实就是用param取代了value的作用。

<jsp:setProperty name= "bean的名字"
property="属性名"
param= "参数名" />

放出完整例子test.jsp:
注意,这里面的a,b,c需要和index页面对应哦

<%@ page language="java" import="java.util.*,javaBean.Box"
pageEncoding="gb2312"%>
<html> <body>
<jsp:useBean id="box" class="javaBean.Box" scope="page"/>
<jsp:setProperty name="box" property="length" param="a" />
<jsp:setProperty name="box" property="width" param="b" />
<jsp:setProperty name="box" property="height" param="c" />
在JSP中使用JavaBean<br>
长方体的长度为: <jsp:getProperty name="box" property="length"/><br>
长方体的宽度为: <jsp:getProperty name="box" property="width"/><br>
长方体的高度为: <jsp:getProperty name="box" property="height"/><br>
<% out.println("长方体的容积为: "+box.getCV()+"<br>"); %>
</body> </html>

感觉还是不够简洁,下面我要放大了(●’◡’●)
更简化写法~~~
前提: form提交数据时标签的name要与Bean类的属性名称保持一致

<form action="test.jsp" ><input type="text" name="length" > <br><input type="text" name="width" > <br><input type="text" name="height" > <br>
<input type="submit" value="提交">
</form>

在满足上述前提下,接收页面一句话搞定传值:

<jsp:setProperty name="box" property="*" />

猜你喜欢

转载自blog.csdn.net/jiojio_/article/details/70143670
今日推荐