⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jspintro8.html

📁 j2eePDF格式的电子书
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">  <head>    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />    <meta http-equiv="Content-Style-Type" content="text/css" />    <title>JavaBeans Components </title>    <link rel="StyleSheet" href="document.css" type="text/css" media="all" />    <link rel="StyleSheet" href="catalog.css" type="text/css" media="all" />    <link rel="Table of Contents" href="J2EETutorialTOC.html" />    <link rel="Previous" href="JSPIntro7.html" />    <link rel="Next" href="JSPIntro9.html" />    <link rel="Index" href="J2EETutorialIX.html" />  </head>  <body>    <table width="550" summary="layout" id="SummaryNotReq1">      <tr>	<td align="left" valign="center">	<font size="-1">	<a href="http://java.sun.com/j2ee/1.4/download.html#tutorial" target="_blank">Download</a>	<br>	<a href="http://java.sun.com/j2ee/1.4/docs/tutorial/information/faq.html" target="_blank">FAQ</a>	<br>	<a href="http://java.sun.com/j2ee/1.4/docs/tutorial/information/history.html" target="_blank">History</a>	</td>        <td align="center" valign="center"><a accesskey="p" href="JSPIntro7.html"><img id="LongDescNotReq1" src="images/PrevArrow.gif" width="26" height="26" border="0" alt="Prev" /></a><a accesskey="c" href="J2EETutorialFront.html"><img id="LongDescNotReq1" src="images/UpArrow.gif" width="26" height="26" border="0" alt="Home" /></a><a accesskey="n" href="JSPIntro9.html"><img id="LongDescNotReq3" src="images/NextArrow.gif" width="26" height="26" border="0" alt="Next" /></a><a accesskey="i" href="J2EETutorialIX.html"></a>        </td>	<td align="right" valign="center">	<font size="-1">	<a href="http://java.sun.com/j2ee/1.4/docs/api/index.html" target="_blank">API</a>	<br>	<a href="http://java.sun.com/j2ee/1.4/docs/tutorial/information/search.html" target="_blank">Search</a>	<br>	<a href="http://java.sun.com/j2ee/1.4/docs/tutorial/information/sendusmail.html" target="_blank">Feedback</a></font>	</font>	</td>      </tr>    </table>    <img src="images/blueline.gif" width="550" height="8" ALIGN="BOTTOM" NATURALSIZEFLAG="3" ALT="Divider">    <blockquote><a name="wp70711"> </a><h2 class="pHeading1">JavaBeans Components </h2><a name="wp73390"> </a><p class="pBody">JavaBeans components are Java classes that can be easily reused and composed together into applications. Any Java class that follows certain design conventions is a JavaBeans component. </p><a name="wp73391"> </a><p class="pBody">JavaServer Pages technology directly supports using JavaBeans components with standard JSP language elements. You can easily create and initialize beans and get and set the values of their properties. </p><a name="wp70948"> </a><h3 class="pHeading2">JavaBeans Component Design Conventions</h3><a name="wp70713"> </a><p class="pBody">JavaBeans component design conventions govern the properties of the class and govern the public methods that give access to the properties.</p><a name="wp70715"> </a><p class="pBody">A JavaBeans component property can be</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp70716"> </a><div class="pSmartList1"><li>Read/write, read-only, or write-only </li></div><a name="wp70717"> </a><div class="pSmartList1"><li>Simple, which means it contains a single value, or indexed, which means it represents an array of values</li></div></ul></div><a name="wp70718"> </a><p class="pBody">A property does not have to be implemented by an instance variable. It must simply be accessible using public methods that conform to the following conventions:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp70720"> </a><div class="pSmartList1"><li>For each readable property, the bean must have a method of the form</li></div><div class="pPreformattedRelative"><pre class="pPreformattedRelative"><code class="cCode">&nbsp;&nbsp;PropertyClass getProperty() { ... }</code><a name="wp70721"> </a></pre></div><a name="wp70722"> </a><div class="pSmartList1"><li>For each writable property, the bean must have a method of the form</li></div><div class="pPreformattedRelative"><pre class="pPreformattedRelative"><code class="cCode">&nbsp;&nbsp;setProperty(PropertyClass pc) { ... }</code><a name="wp70723"> </a></pre></div></ul></div><a name="wp70724"> </a><p class="pBody">In addition to the property methods, a JavaBeans component must define a constructor that takes no parameters. </p><a name="wp70725"> </a><p class="pBody">The Duke's Bookstore application JSP pages <code class="cCode">enter.jsp</code>, <code class="cCode">bookdetails.jsp</code>, <code class="cCode">catalog.jsp</code>, and <code class="cCode">showcart.jsp</code> use the <code class="cCode"><a  href="../examples/web/bookstore2/src/database/BookDB.java" target="_blank">database.BookDB</a></code> and <code class="cCode"><a  href="../examples/web/bookstore/src/database/BookDetails.java" target="_blank">database.BookDetails</a></code> JavaBeans components. <code class="cCode">BookDB</code> provides a JavaBeans component front end to the access object <code class="cCode">database.BookDBAO</code>. The JSP pages <code class="cCode">showcart.jsp</code> and <code class="cCode">cashier.jsp</code> access the bean <code class="cCode"><a  href="../examples/web/bookstore/src/cart/ShoppingCart.java" target="_blank">cart.ShoppingCart</a></code>, wh<code class="cCode">ich </code>represents a user's shopping cart.</p><a name="wp74540"> </a><p class="pBody">The <code class="cCode">BookDB</code> bean has two writable properties, <code class="cCode">bookId</code> and <code class="cCode">database</code>, and three readable properties, <code class="cCode">bookDetails</code>, <code class="cCode">numberOfBooks</code>, and <code class="cCode">books</code>. These latter properties do not correspond to any instance variables, but are a function of the <code class="cCode">bookId</code> and <code class="cCode">database</code> properties.</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">package databasepublic class BookDB {private String bookId = &quot;0&quot;;private BookDBAO database = null;public BookDB () {}&nbsp;&nbsp;public void setBookId(String bookId) {&nbsp;&nbsp;this.bookId = bookId;&nbsp;&nbsp;}&nbsp;&nbsp;public void setDatabase(BookDBAO database) {&nbsp;&nbsp;this.database = database;&nbsp;&nbsp;}&nbsp;&nbsp;public BookDetails getBookDetails() throws &nbsp;&nbsp;&nbsp;&nbsp;BookNotFoundException {&nbsp;&nbsp;&nbsp;&nbsp;return (BookDetails)database.getBookDetails(bookId); &nbsp;&nbsp;}&nbsp;&nbsp;public Collection getBooks() throws BooksNotFoundException {&nbsp;&nbsp;&nbsp;&nbsp;return database.getBooks();&nbsp;&nbsp;}&nbsp;&nbsp;public void buyBooks(ShoppingCart cart) &nbsp;&nbsp;&nbsp;&nbsp;throws OrderException {&nbsp;&nbsp;&nbsp;&nbsp;database.buyBooks(cart);&nbsp;&nbsp;}&nbsp;&nbsp;public int getNumberOfBooks() throws BooksNotFoundException {&nbsp;&nbsp;&nbsp;&nbsp;return database.getNumberOfBooks();&nbsp;&nbsp;}}<a name="wp74547"> </a></pre></div><a name="wp74543"> </a><h3 class="pHeading2">Creating and Using a JavaBeans Component</h3><a name="wp70743"> </a><p class="pBody">You declare that your JSP page will use a JavaBeans component using a <code class="cCode">jsp:useBean</code> element. There are two forms:</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">&lt;jsp:useBean id=&quot;<code class="cVariable">beanName</code>&quot;&nbsp;&nbsp;class=&quot;<code class="cVariable">fully_qualified_classname</code>&quot; scope=&quot;<code class="cVariable">scope</code>&quot;/&gt;<a name="wp70744"> </a></pre></div><a name="wp70745"> </a><p class="pBody">and </p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">&lt;jsp:useBean id=&quot;<code class="cVariable">beanName</code>&quot;&nbsp;&nbsp;class=&quot;<code class="cVariable">fully_qualified_classname</code>&quot; scope=&quot;<code class="cVariable">scope</code>&quot;&gt;&nbsp;&nbsp;&lt;jsp:setProperty .../&gt;&lt;/jsp:useBean&gt;<a name="wp70746"> </a></pre></div><a name="wp70747"> </a><p class="pBody">The second form is used when you want to include <code class="cCode">jsp:setProperty</code> statements, described in the next section, for initializing bean properties.</p><a name="wp70748"> </a><p class="pBody">The <code class="cCode">jsp:useBean</code> element declares that the page will use a bean that is stored within and accessible from the specified scope, which can be <code class="cCode">application</code>, <code class="cCode">session</code>, <code class="cCode">request</code>, or <code class="cCode">page</code>. If no such bean exists, the statement creates the bean and stores it as an attribute of the scope object (see <a  href="Servlets5.html#wp64315">Using Scope Objects</a>). The value of the <code class="cCode">id</code> attribute determines the <em class="cEmphasis">name</em> of the bean in the scope and the <em class="cEmphasis">identifier</em> used to reference the bean in EL expressions, other JSP elements, and scripting expressions (see Chapter&nbsp;<a  href="JSPAdvanced.html#wp65706">16</a>). The value supplied for the <code class="cCode">class</code> attribute must be a fully-qualified class name. Note that beans cannot be in the unnamed package. Thus the format of the value must be <code class="cVariable">package_name.class_name</code>.</p><a name="wp70760"> </a><p class="pBody">The following element creates an instance of <code class="cCode">mypkg.myLocales</code> if none exists, stores it as an attribute of the application scope, and makes the bean available throughout the application by the identifier <code class="cCode">locales</code>: </p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">&lt;jsp:useBean id=&quot;locales&quot; scope=&quot;application&quot;&nbsp;&nbsp;class=&quot;mypkg.MyLocales&quot;/&gt;<a name="wp75702"> </a></pre></div><a name="wp70763"> </a><h3 class="pHeading2">Setting JavaBeans Component Properties</h3><a name="wp70765"> </a><p class="pBody">The standard way to set JavaBeans component properties in a JSP page is with the <code class="cCode">jsp:setProperty</code> element. The syntax of the <code class="cCode">jsp:setProperty</code> element depends on the source of the property value. <a  href="JSPIntro8.html#wp70778">Table 12-3</a> summarizes the various ways to set a property of a JavaBeans component using the <code class="cCode">jsp:setProperty</code> element.</p><div align="left"><table border="1" summary="Valid Bean Property Assignments from String Values" id="wp70778">  <caption><a name="wp70778"> </a><div class="pTableTitle">Table 12-3   Valid Bean Property Assignments from String Values&nbsp;</div></caption>  <tr align="center">    <th><a name="wp70782"> </a><div class="pCellHeading">Value Source</div></th>    <th><a name="wp70784"> </a><div class="pCellHeading">Element Syntax</div></th></tr>  <tr align="left">    <td><a name="wp70786"> </a><div class="pCellBody">String constant</div></td>    <td><a name="wp70788"> </a><div class="pCellBody"><code class="cCode">&lt;jsp:setProperty name=&quot;</code><code class="cVariable">beanName</code><code class="cCode">&quot;</code></div><a name="wp70789"> </a><div class="pCellBody"><code class="cCode">&nbsp;&nbsp;property=&quot;</code><code class="cVariable">propName</code><code class="cCode">&quot; value=&quot;</code><code class="cVariable">string constant</code><code class="cCode">&quot;/&gt;</code></div></td></tr>  <tr align="left">    <td><a name="wp70791"> </a><div class="pCellBody">Request parameter</div></td>    <td><a name="wp70793"> </a><div class="pCellBody"><code class="cCode">&lt;jsp:setProperty name=&quot;</code><code class="cVariable">beanName</code><code class="cCode">&quot; </code></div><a name="wp70794"> </a><div class="pCellBody"><code class="cCode">&nbsp;&nbsp;property=&quot;</code><code class="cVariable">propName</code><code class="cCode">&quot; param=&quot;</code><code class="cVariable">paramName</code><code class="cCode">&quot;/&gt; </code></div></td></tr>  <tr align="left">    <td><a name="wp70796"> </a><div class="pCellBody">Request parameter name matches bean property</div></td>    <td><a name="wp70798"> </a><div class="pCellBody"><code class="cCode">&lt;jsp:setProperty name=&quot;</code><code class="cVariable">beanName</code><code class="cCode">&quot; </code></div><a name="wp70799"> </a><div class="pCellBody"><code class="cCode">&nbsp;&nbsp;property=&quot;</code><code class="cVariable">propName</code><code class="cCode">&quot;/&gt;</code></div><a name="wp70800"> </a><div class="pCellBody">&#160;</div><a name="wp70801"> </a><div class="pCellBody"><code class="cCode">&lt;jsp:setProperty name=&quot;</code><code class="cVariable">beanName</code><code class="cCode">&quot; </code></div><a name="wp70802"> </a><div class="pCellBody"><code class="cCode">&nbsp;&nbsp;property=&quot;*&quot;/&gt;</code></div></td></tr>  <tr align="left">    <td><a name="wp70804"> </a><div class="pCellBody">Expression</div></td>    <td><a name="wp70806"> </a><div class="pCellBody"><code class="cCode">&lt;jsp:setProperty name=&quot;</code><code class="cVariable">beanName</code><code class="cCode">&quot; </code></div><a name="wp70807"> </a><div class="pCellBody"><code class="cCode">&nbsp;&nbsp;property=&quot;</code><code class="cVariable">propName</code><code class="cCode">&quot; value=&quot;</code><code class="cVariable">expression</code><code class="cCode">&quot;/&gt; </code></div><a name="wp71178"> </a><div class="pCellBody">&#160;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -