JSP基础:JavaBean基础应用

    JavaBean是用Java语言所写成的可重用(复用)组件,它可以用于系统的很多层中,如PO、VO、DTO、POJO等,其应用十分广泛。

一、获取JavaBean属性信息
    在JavaBean对象中,为了防止外部直接对JavaBean属性的调用,通常将JavaBean中的属性设置为private(私有的),但需要为其提供public(公共的)访问方法,也就是所说的getXXX()方法。下面通过实例演示如何获取JavaBean属性信息。
1、创建名称为Produce的类,该类是封装商品对象的JavaBean,在Produce类中创建商品属性,并提供相应的getXXX()方法。

public class Produce {
	//商品名称
	private String name="电吉他";
	//商品价格
	private double price=1880.5;
	//数量
	private int count=100;
	//出场地址
	private String factoryAdd="吉林省长春市 XXX 琴行";
	public String getName() {
		return name;
	}
	public double getPrice() {
		return price;
	}
	public int getCount() {
		return count;
	}
	public String getFactoryAdd() {
		return factoryAdd;
	}
本例只演示如何获取JavaBean属性信息,所以对Produce类中的属性设置了默认值
2、在JSP页面中获取商品JavaBean中的属性信息,该操作通过JSP动作标签进行获取。
<jsp:useBean id="produce" class="com.javaBean.applicaion.Produce" />
	<div>
		<ul>
			<li>
				商品名称:<jsp:getProperty property="name" name="produce"/>
			</li>
			<li>
				价格:<jsp:getProperty property="price" name="produce"/>
			</li>
			<li>
				数量:<jsp:getProperty property="count" name="produce"/>
			</li>
			<li>
				厂址:<jsp:getProperty property="factoryAdd" name="produce"/>
			</li>
		</ul>
	</div>
在JavaWeb开发中,JSP页面中应该尽量避免出现Java代码,因为出现这样的代码看起来比较混乱,所以实例中采用JSP动作标签来避免这一问题。本实例主要通过<jsp:useBean>标签实例化商品的JavaBean对象,<jsp:getProperty>标签获取JavaBean中的属性信息。实例运行结果如图:


二、对JavaBean属性赋值
    编写JavaBean对象要遵循JavaBean规范,在JavaBean规范中的访问器setXXX()方法,用于对JavaBean中的属性赋值,如果对JavaBean对象的属性提供了setXXX()方法,在JSP页面中就可以通过<jsp:setProperty>对其进行赋值。
下面通过实例演示:
1、延续使用之前创建的Produce类,在该类中添加提供属性的setXXX()方法。

public class Produce {
	//商品名称
	private String name="电吉他";
	//商品价格
	private double price=1880.5;
	//数量
	private int count=100;
	//出场地址
	private String factoryAdd="吉林省长春市 XXX 琴行";
	public String getName() {
		return name;
	}
	public double getPrice() {
		return price;
	}
	public int getCount() {
		return count;
	}
	public String getFactoryAdd() {
		return factoryAdd;
	}
	public void setName(String name) {
		this.name = name;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public void setCount(int count) {
		this.count = count;
	}
	public void setFactoryAdd(String factoryAdd) {
		this.factoryAdd = factoryAdd;
	}
2、延续使用之前创建的index.jsp,在该页面中添加使用<jsp:setProperty>标签对属性进行赋值并输出。

<jsp:useBean id="produce" class="com.javaBean.applicaion.Produce"/>
	<%-- 只是临时的改变,并没有真正改变Produce类的默认赋值 --%>
	<jsp:setProperty property="name" name="produce" value="洗衣机"/>
	<jsp:setProperty property="price" name="produce" value="8888.88"/>
	<jsp:setProperty property="count" name="produce" value="88"/>
	<jsp:setProperty property="factoryAdd" name="produce" value="广东省 XXX 公司"/>
	<div>
		<ul>
			<li>
				商品名称:<jsp:getProperty property="name" name="produce"/>
			</li>
			<li>
				价格:<jsp:getProperty property="price" name="produce"/>
			</li>
			<li>
				数量:<jsp:getProperty property="count" name="produce"/>
			</li>
			<li>
				厂址:<jsp:getProperty property="factoryAdd" name="produce"/>
			</li>
		</ul>
	</div>
index.jsp页面是程序中的首页,页面主要通过<jsp:userBean>标签实例化Produce对象,通过<jsp:setProperty>标签对Produce对象中的属性进行赋值,然后再通过<jsp:getProperty>标签输出已赋值的Produce对象中的属性信息。结果如图:

三、在JSP页面中应用JavaBean
    在JSP页面中应用JavaBean非常简单,相信通过上面两点大家已经清楚了,主要通过JSP动作标签<jsp:userBean>、<jsp:getProperty>、<jsp:setProperty>来实现对JavaBean对象的操作,但所编写的JavaBean对象要遵循JavaBean规范,只有严格遵循JavaBean规范,在JSP页面中才能够方便地调用及操作JavaBean。
将JavaBean对象应用到JSP页面中,JavaBean的生命周期可以自行进行设置,它存在于4种范围内,分别为page、request、session和application,默认情况下,JavaBean作用于page范围内,也就是当前页。
下面通过实例完整地演示JavaBean通过JSP页面来进行先存后取的过程:
1、创建名称为Person的类,实现对用户信息的封装。

public class Person {
	//姓名
	private String name;
	//年龄
	private int age;
	//性别
	private String sex;
	//住址
	private String add;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getAdd() {
		return add;
	}
	public void setAdd(String add) {
		this.add = add;
	}
在Person类中包含四个属性,分别代表姓名、年龄、性别与住址,该类在实例中充当用户信息对象的JavaBean。
2、创建程序的主页面index.jsp,在页面中放置录入用户信息的表单。
<form action="<%=basePath %>jspApplication/reg.jsp" method="post">
		<table align="center" width="400px" height="200px" border="1px">
			<tr>
				<td align="center" colspan="2" height="40px">
					<b>添加用户信息</b>
				</td>
			</tr>
			<tr>
				<td align="right">姓 名:</td>
				<td><input type="text" name="name"/></td>
			</tr>
			<tr>
				<td align="right">年 龄:</td>
				<td><input type="text" name="age"/></td>
			</tr>
			<tr>
				<td align="right">性 别:</td>
				<td><input type="text" name="sex"/></td>
			</tr>
			<tr>
				<td align="right">住 址:</td>
				<td><input type="text" name="add"/></td>
			</tr>
			<tr>
				<td align="center" colspan="2">
					<input type="submit" value="添 加">
				</td>
			</tr>
		</table>
	</form>
3、创建名称为reg.jsp的JSP页面,用于对index.jsp页面中表单的提交请求进行处理。该页面将获取表单提交的所有信息,然后将所获取的用户信息输出到页面中。
<%
			request.setCharacterEncoding("UTF-8");
		%>
		<jsp:useBean id="person" class="com.javaBean.jspApplication.Person"
			scope="page">
			<%-- scope属性表示从表单获取的值存储的范围,有page,request,session,application --%>
			<jsp:setProperty name="person" property="*" /><%-- 通过property="*"属性接收所有参数,减少代码量 --%>
		</jsp:useBean>
		<table align="center" width="400px">
			<tr>
				<td align="right">
					姓 名:
				</td>
				<td>
					<jsp:getProperty property="name" name="person" /><%-- 表单中的属性名称若与 JavaBean 中的不一致,则通过jsp:getProperty param属性指定表单中的属性 --%>
				</td>
			</tr>
			<tr>
				<td align="right">
					年 龄:
				</td>
				<td>
					<jsp:getProperty property="age" name="person" />
				</td>
			</tr>
			<tr>
				<td align="right">
					性 别:
				</td>
				<td>
					<jsp:getProperty property="sex" name="person" />
				</td>
			</tr>
			<tr>
				<td align="right">
					住 址:
				</td>
				<td>
					<jsp:getProperty property="add" name="person" />
				</td>
			</tr>
		</table>
reg.jsp页面中的<jsp:uesBean>标签实例化了JavaBean,然后通过<jsp:setProperty name=”person”property=”*”/>对Person类中的所有属性进行赋值,使用这种方法要求表单中的属性名称与JavaBean中的属性名称一致,这种方法可以减少程序中的代码量。
效果图:
表单页index.jsp---

输出页reg.jsp---



    最后说明:通过在实体类中,写好private属性后可以通过右键鼠标->Source->Generate Getters and Setters 自动创建你要的set和get方法,当然你最好先手打几次,知道该如何手写set和get方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章