Jsp中使用JavaBean

1.JavaBean组件标准
①实现java.io.Serializable接口
②提供无参数的构造方法
③提供getter()和setter()方法访问它的属性
2.在JSP中使用JavaBean
JSP规范中定义了<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>来建立对JavaBean的引用并读取/设置JavaBean的属性值。
2.1 <jsp:useBean>
<jsp:useBean id=”name” class=”classname” scope={“page
equestsessionapplication”}/>
执行过程:
①在指定的scope中查找名为name的JavaBean实例。
②若找到,则创建一个名为name、类型为classname的局部变量,其引用指向该JavaBean。若未找到,则在该scope中创建一个名为name、类型为classname的JavaBean,并创建相应的局部变量指向它。
2.2<jsp:setProperty>
<jsp:setProperty name=”beanName” propertyDetails/>
其中:
①name=”beanName”是必选属性。其值为Bean的名称,在这之前用jsp:useBean引入的id。
例:
<jsp:useBean id=”usersession” scope=”session” class=”com.user.UserSession”>
<jsp:setProperty name=”usersession” property=”name” value=”Tom”/>
</jsp:useBean> ②propertyDetails可以通过四种不同的方法来指定属性的信息。 property=”*”
    这是一种设置Bean属性的快捷方式,在Bean中,属性的名称、类型必须和request对象中的参数名称相匹配。如果request对象的属性值中有空值,那么对应的Bean属性将不会设置任何值。同样,如果Bean中有一个属性没有与之对应的request参数值,那么这个属性同样不会设定。使用property=”*”,Bean的属性不用按HTML表单中的顺序排序。 property=”propertyName”
使用request中的一个参数值来指定Bean中的一个属性值。这里,property指定Bean的属性名,而且Bean属性和request参数的名称应相同。如果request对象的参数值中有空值,那么对应的Bean属性将不会被设定任何值。 property=”propertyName” param=”parameterName”
    在Bean属性的名称和request中参数的名称不同时可以使用这个方法。Param指定request中的参数名。如果request对象的参数值中有空值,那么对应的Bean属性将不会被设定任何值。 property=”propertyName” value=”propertyValue”
value是一个可选属性,它使用指定的值来设定Bean的属性。如果参数值为空,那么对应的属性值也不会被设定。不能在一个<jsp:setProperty>中同时使用param和value。
2.3 <jsp:getProperty>
<jsp:getProperty>操作是对<jsp:setProperty>操作的补充,它用来访问一个Bean属性。
<jsp:getProperty name=”beanName” propertry=”propertyName”/> ①name=”beanName”是必选属性。其值为Bean的名称,在这之前用jsp:useBean引入的id。
例:
<jsp:useBean id=”usersession” scope=”session” class=”com.user.UserSession”>
<jsp:getProperty name=”usersession” property=”name” />
</jsp:useBean> ②property=”propertyName”是一个必选属性。其值为所指定的Bean的属性名。 3.注册实例1,使用property=”*”
UserBean.java package com.zj.sample; import java.io.Serializable; public class UserBean implements Serializable{    public String userName;
public String password;
public int age;
public UserBean(){}
public void setUserName(String name){
this.userName=name;
}
public void setPassword(String password){
this.password=password;
}
public void setAge(int age){
this.age=age;
}
public String getUserName(){
return this.userName;
}
public String getPassword(){
return this.password;
}
public int getAge(){
return this.age;
}
} reg.html <html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=GB18030″>
<title>Reg</title>
</head>
<body>
User Info:<br><hr>
<form method=”get” action=”reg.jsp”>
<table>
// name=”userName”对应UserBean属性
<tr><td>Name:<input name=”userName” type=”text”></td></tr>
// name=”password”对应UserBean属性
<tr><td>Password:<input name=”password” type=”password”></td></tr>
// name=”age”对应UserBean属性
<tr><td>Age:<input name=”age” type=”text”></td></tr>
<tr><td><input type=”submit” value=”submit”></td></tr>
</table>
</form>
</body>
</html>reg.jsp <%@ page language=”java” contentType=”text/html; charset=GB18030″
pageEncoding=”GB18030″%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<jsp:useBean id=”user” scope=”page” class=”com.zj.sample.UserBean”/>
<jsp:setProperty name=”user” property=”*”/> //使用property=”*”
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=GB18030″>
<title>Show Info</title>
</head>
<body>
Reg successful!<br>
// property=”userName”对应UserBean属性
Name:<jsp:getProperty name=”user” property=”userName”/><br>
// property=”password”对应UserBean属性
Password:<jsp:getProperty name=”user” property=”password”/><br>
// property=”age”对应UserBean属性
Age:<jsp:getProperty name=”user” property=”age”/><br>
</body>
</html> 4.注册实例2,使用param=”parameterName”
UserBean.java与上例相同 reg2.html <html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=GB18030″>
<title>Reg</title>
</head>
<body>
User Info:<br><hr>
<form method=”get” action=”reg2.jsp”>
<table>
<tr><td>Name:<input name=”USERNAME” type=”text”></td></tr>
<tr><td>Password:<input name=”PASSWORD” type=”password”></td></tr>
<tr><td>Age:<input name=”AGE” type=”text”></td></tr>
<tr><td><input type=”submit” value=”submit”></td></tr>
</table>
</form>
</body>
</html>reg2.jsp <%@ page language=”java” contentType=”text/html; charset=GB18030″
pageEncoding=”GB18030″%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<jsp:useBean id=”user” scope=”page” class=”com.zj.sample.UserBean”/>
// property=”userName”对应UserBean属性,param=”USERNAME”对应表单属性
<jsp:setProperty name=”user” property=”userName” param=”USERNAME”/>
// property=”password”对应UserBean属性,param=”PASSWORD”对应表单属性
<jsp:setProperty name=”user” property=”password” param=”PASSWORD”/>
// property=”age”对应UserBean属性,param=”AGE”对应表单属性
<jsp:setProperty name=”user” property=”age” param=”AGE”/>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=GB18030″>
<title>Show Info</title>
</head>
<body>
Reg successful!<br>
// property=”userName”对应UserBean属性
Name:<jsp:getProperty name=”user” property=”userName”/><br>
// property=”password”对应UserBean属性
Password:<jsp:getProperty name=”user” property=”password”/><br>
// property=”age”对应UserBean属性
Age:<jsp:getProperty name=”user” property=”age”/><br>
</body>
</html>

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>