原創作品,允許轉載,轉載時請務必以超連結形式標明文章
原始出處 、作者資訊和本聲明。否則將追究法律責任。http://zhangjunhd.blog.51cto.com/113473/18210Jsp中使用JavaBean
本文介紹如何在Jsp中使用JavaBean。
1.JavaBean組件標準①實現java.io.Serializable介面②提供無參數的構造方法③提供getter()和setter()方法訪問它的屬性2.在JSP中使用JavaBeanJSP規範中定義了<jsp:useBean>、<jsp:setProperty>、<jsp:useProperty>來建立對JavaBean的引用並讀取/設定JavaBean的屬性值。 2.1 <jsp:useBean>
<jsp:useBean id=”name” class=”classname” scope={“page/request/session/application”}/>
執行過程:①在指定的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可以通過四種不同的方法來指定屬性的資訊。[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>中同時使用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;/** * 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></head><body> Reg successful! // property="userName"對應UserBean屬性 <br><jsp:getProperty name="user" property="userName" /> // property="password"對應UserBean屬性 <br><jsp:getProperty name="user" property="password" /> // property="age"對應UserBean屬性 <br><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>
本文出自 “子 孑” 部落格,請務必保留此出處http://zhangjunhd.blog.51cto.com/113473/18210