JavaBean的简单用法

JSP中的JavaBean的一些简单用法

1.JavaBean组件的作用是提高了代码的复用率,将页面的现实逻辑和业务逻辑区分开,使得HTML开发人员和java程序员能够分开工作。
2.JavaBean组件本身就是一个类,只不过一个标准的JavaBean组件有几个特征而已。
(1)它是一个公开的(public)类。
(2)它必须有一个默认的构造办法。即没带参数的构造办法。
(3)它提供公有的getXXX()和setXXX()办法给外部程序获取JavaBean的属性值。
但可以屏蔽一些getXXX()和setXXX()办法。即有些属性可以是只读或只写。对于
Boolean属性对于的办法应该是is/set。
(4)索引属性是指获取和设置数组时使用的属性。要运用索引属性,需要提供两对
get/set办法,一对用于数组,另一对用于数组中的元素。
3.JavaBean的一个例子
public class Person{
private String name;
private int age;
private boolean married=false;
private String[] interest;

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 boolean isMarried(){
return married;
}
public void setMarried(boolean married){
this.married=married;
}

public String[] getInterest(){
return this.interest;
}
public void setInterest(String[] interest){
this.interest=interest;
}
public String getInterest(int i){
return this.interest[i];
}
public void setInterest(int i,String newInterest){
interest[i]=newInterest;
}
}
4.如何在JSP中使用JavaBean
JSP中提供了3个动作元素来访问JavaBean,分别是<jsp:useBean>,<jsp:setProperty>和<jsp:getProperty>

4.1<jsp:useBean>动作语法如下:
<jsp:useBean id="idName" scope="page/request/session/application" typeSpec />
其中的typeSpec的定义如下:
typeSpec::=class="className" type="typeName" |
type="typeName" class="className" |
beanName="beanName" type="typeName" |
type="typeName" beanName="beanName" |
type="typeName"
其中的各个属性的含义如下:
id:用于标记JavaBean的名字。
scope:指定JavaBean的范围。
class:JavaBean的完整限定类名。
beanName:指定bean的名字。该名字提供给java.beans.Beas类的instantiate()办法,实
例化一个JavaBean。
type:指定定义的脚本变量的类型。该属性默认值和class属性的值一样。可以使bean本
身,父类或有bean类提供的接口。

4.2<jsp:setProperty>
该动作与<jsp:useBean>一起,用来设置javaBean的简单属性和索引属性。该动作将调用
JavaBean中的setXXX办法,为该JavaBean类设置属性。
<jsp:setProperty>动作语法如下:
<jsp:setProperty name="beanName" prop_expr />
其中,prop_expr的定义如下:
prop_expr ::=property="*" |
property="propertyName" param="parameterName"
property="propertyName" value="propertyValue"

其中各个属性的含义如下:
name:实例的名字,它必须是已经在<jsp:useBean>元素中通过id属性定义的名字。
property设置属性的名字。如果是"*"表示请求参数传递过来的名字和JavaBean的名字是
一样的。
param请求参数的名字。
value:JavaBean的值。不能与param同时使用。

4.3<jsp:getProperty>
<jsp:getProperty>用来访问一个bean的属性。并把属性的值转化成一个String。如果属
性是一个对象,将调用对象的toString()办法。
该动作元素的语法如下:
<jsp:getProperty name="name" property="propertyName">
其中,各个属性的含义为:
name:JavaBean的名字。
property要得到的属性名字。该属性必须在JavaBean中时可读的属性。

5.实例。
下面将结合上述进行一个简单的例子。

5.1javaBean类:
package com.havy.bean;
public class PersonBean implements java.io.Serializable{
private static final long serialVersionUID = -4301923149579270947L;

private String name;
private int sex;
private boolean married=false;
private String[] interest;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public boolean isMarried() {
return married;
}
public void setMarried(boolean married) {
this.married = married;
}
public String[] getInterest() {
return interest;
}
public void setInterest(String[] interest) {
this.interest = interest;
}
public String getInterest(int i){
return this.interest[i];
}
public void setInterest(int i,String newInterest){
interest[i]=newInterest;
}
}
5.2HTML提交页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>用户信息填写</title>
</head>
<body>
<form action="reg.jsp" method="post" name="reg">
<table >
<tr>
<td>用户名:</td>
<td><input type="text" name="personName"></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="sex" value="1" checked>男
<input type="radio" name="sex" value="0">女
</td>
</tr>
<tr>
<td>婚否</td>
<td>
<input type="checkbox" name="married" value="1">婚否
</td>
</tr>
<tr>
<td>兴趣</td>
<td>
<input type="checkbox" name="interest" value="shopping">购物
<input type="checkbox" name="interest" value="sport">运动
<input type="checkbox" name="interest" value="onLine">上网
</td>
</tr>
<tr>
<td><input type="reset" value="重填"></td>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>

5.3设置JavaBean和获取JavaBean的值
<%@page contentType="text/html;charset=gb2312" %>
<%
request.setCharacterEncoding("gb2312");
%>
<jsp:useBean id="person" scope="session" class="com.havy.bean.PersonBean"></jsp:useBean>
<jsp:setProperty name="person" property="*" />
<jsp:setProperty name="person" property="name" param="personName" />

<html>
<body>
<a href="personInfo.jsp">查看设置的属性</a>

你的姓名:<jsp:getProperty property="name" name="person"/><br>
你的性别:<%
int sex=person.getSex();
if(1==sex)
out.println("男");
else if(0==sex)
out.println("女");
%>
<br>
你的婚否:<%
boolean married=person.isMarried();
if(married)
out.println("已经结婚");
else
out.println("还没结婚");
%>
<br>
你的兴趣:
<%
String[] s=person.getInterest();
for(int i=0;i<s.length;i++){
out.println(person.getInterest(i));
}
%><br>

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值