当前位置: 代码迷 >> JavaScript >> Jsp:施用JavaBean(转载)
  详细解决方案

Jsp:施用JavaBean(转载)

热度:463   发布时间:2012-12-18 12:43:41.0
Jsp:使用JavaBean(转载)

转自: http://www.iteye.com/topic/199453?by pengyeer

?

1.JavaBean组件标准
①实现java.io.Serializable接口
②提供无参数的构造方法
③提供getter()和setter()方法访问它的属性
2.在JSP中使用JavaBean
JSP规范中定义了<jsp:useBean><jsp:setProperty><jsp:useProperty>来建立对JavaBean的引用并读取/设置JavaBean的属性值。
?
2.1 <jsp:useBean>
<jsp:useBean id=”name” class=”classname” scope={“page\request\session\application”}/>
执行过程:
①在指定的scope中查找名为nameJavaBean实例。
②若找到,则创建一个名为name、类型为classname的局部变量,其引用指向该JavaBean;若未找到,则在该scope中创建一个名为name、类型为classnameJavaBean,并创建相应的局部变量指向它。
?
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可以通过四种不同的方法来指定属性的信息。
[1]property=”*”
这是一种设置Bean属性的快捷方式,在Bean中,属性的名称、类型必须和request对象中的参数名称相匹配。如果request对象的属性值中有空值,那么对应的Bean属性将不会设置任何值。同样,如果Bean中有一个属性没有与之对应的request参数值,那么这个属性同样不会设定。使用property=”*”Bean的属性不用按HTML表单中的顺序排序。
[2]property=”propertyName”
使用request中的一个参数值来指定Bean中的一个属性值。这里,property指定Bean的属性名,而且Bean属性和request参数的名称应相同。如果request对象的参数值中有空值,那么对应的Bean属性将不会被设定任何值。
[3]property=”propertyName” param=”parameterName”
Bean属性的名称和request中参数的名称不同时可以使用这个方法。Param指定request中的参数名。如果request对象的参数值中有空值,那么对应的Bean属性将不会被设定任何值
[4]property=”propertyName” value=”propertyValue”
value是一个可选属性,它使用指定的值来设定Bean的属性。如果参数值为空,那么对应的属性值也不会被设定。不能在一个<jsp:setProperty>中同时使用paramvalue
?
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;
/**
?*?Create?a?JavaBean
?*/
public?class?UserBean?implements?Serializable {
????private?static?final?long?serialVersionUID?= 1L;
????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>

?

  相关解决方案