📄 jspintro8.html
字号:
</div><a name="wp71179"> </a><div class="pCellBody"><code class="cCode"><jsp:setProperty name="</code><code class="cVariable">beanName</code><code class="cCode">"</code></div><a name="wp71184"> </a><div class="pCellBody"><code class="cCode"> property="</code><code class="cVariable">propName</code><code class="cCode">" ></code></div><a name="wp71185"> </a><div class="pCellBody"><code class="cCode"> <jsp:attribute name="</code>value<code class="cCode">"><br /> </code><code class="cVariable">expression<br /></code><code class="cCode"> </jsp:attribute></code></div><a name="wp71189"> </a><div class="pCellBody"><code class="cCode"></jsp:setProperty></code></div></td></tr> <tr align="left"> <td><a name="wp70812"> </a><div style="color: #000000; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; margin-bottom: 0pt; margin-left: 24pt; margin-right: 24pt; margin-top: 0pt; text-align: left; text-decoration: none; text-indent: 0pt; text-transform: none"> </div></td> <td><a name="wp81236"> </a><div class="pCellBody">1. <code class="cVariable">beanName</code> must be the same as that specified for the <code class="cCode">id</code> attribute in a <code class="cCode">useBean</code> element. </div><a name="wp81237"> </a><div class="pCellBody">2. There must be a <code class="cVariable">setPropName</code><code class="cCode"> </code>method in the JavaBeans component.</div><a name="wp70814"> </a><div class="pCellBody">3. <code class="cVariable">paramName</code> must be a request parameter name.</div></td></tr></table></div><p class="pBody"></p><a name="wp70817"> </a><p class="pBody">A property set from a constant string or request parameter must have a type listed in <a href="JSPIntro8.html#wp70827">Table 12-4</a>. Since both a constant and request parameter are strings, the Web container automatically converts the value to the property's type; the conversion applied is shown in the table. </p><a name="wp76920"> </a><p class="pBody"><code class="cCode">String</code> values can be used to assign values to a property that has a <code class="cCode">PropertyEditor</code> class. When that is the case, the <code class="cCode">setAsText(String)</code> method is used. A conversion failure arises if the method throws an <code class="cCode">IllegalArgumentException</code>. </p><a name="wp76921"> </a><p class="pBody">The value assigned to an indexed property must be an array, and the rules just described apply to the elements. </p><div align="left"><table border="1" summary="Valid Property Value Assignments from String Values" id="wp70827"> <caption><a name="wp70827"> </a><div class="pTableTitle">Table 12-4 Valid Property Value Assignments from String Values </div></caption> <tr align="center"> <th><a name="wp70831"> </a><div class="pCellHeading">Property Type</div></th> <th><a name="wp70833"> </a><div class="pCellHeading">Conversion on String Value</div></th></tr> <tr align="left"> <td><a name="wp70835"> </a><div class="pCellBody">Bean Property</div></td> <td><a name="wp70837"> </a><div class="pCellBody">Uses<code class="cCode"> setAsText(</code><code class="cVariable">string-literal</code><code class="cCode">)</code></div></td></tr> <tr align="left"> <td><a name="wp70839"> </a><div class="pCellBody"><code class="cCode">boolean</code> or <code class="cCode">Boolean</code></div></td> <td><a name="wp70841"> </a><div class="pCellBody">As indicated in <code class="cCode">java.lang.Boolean.valueOf(String)</code></div></td></tr> <tr align="left"> <td><a name="wp70843"> </a><div class="pCellBody"><code class="cCode">byte</code> or <code class="cCode">Byte</code></div></td> <td><a name="wp70845"> </a><div class="pCellBody">As indicated in <code class="cCode">java.lang.Byte.valueOf(String)</code></div></td></tr> <tr align="left"> <td><a name="wp70847"> </a><div class="pCellBody"><code class="cCode">char</code> or <code class="cCode">Character</code></div></td> <td><a name="wp70849"> </a><div class="pCellBody">As indicated in <code class="cCode">java.lang.String.charAt(0)</code></div></td></tr> <tr align="left"> <td><a name="wp70851"> </a><div class="pCellBody"><code class="cCode">double</code> or <code class="cCode">Double</code></div></td> <td><a name="wp70853"> </a><div class="pCellBody">As indicated in <code class="cCode">java.lang.Double.valueOf(String)</code></div></td></tr> <tr align="left"> <td><a name="wp70855"> </a><div class="pCellBody"><code class="cCode">int</code> or <code class="cCode">Integer</code></div></td> <td><a name="wp70857"> </a><div class="pCellBody">As indicated in <code class="cCode">java.lang.Integer.valueOf(String)</code></div></td></tr> <tr align="left"> <td><a name="wp70859"> </a><div class="pCellBody"><code class="cCode">float</code> or <code class="cCode">Float</code></div></td> <td><a name="wp70861"> </a><div class="pCellBody">As indicated in <code class="cCode">java.lang.Float.valueOf(String)</code></div></td></tr> <tr align="left"> <td><a name="wp70863"> </a><div class="pCellBody"><code class="cCode">long</code> or <code class="cCode">Long</code></div></td> <td><a name="wp70865"> </a><div class="pCellBody">As indicated in <code class="cCode">java.lang.Long.valueOf(String)</code></div></td></tr> <tr align="left"> <td><a name="wp70867"> </a><div class="pCellBody"><code class="cCode">short</code> or <code class="cCode">Short</code> </div></td> <td><a name="wp70869"> </a><div class="pCellBody">As indicated in <code class="cCode">java.lang.Short.valueOf(String)</code></div></td></tr> <tr align="left"> <td><a name="wp70871"> </a><div class="pCellBody"><code class="cCode">Object</code></div></td> <td><a name="wp70873"> </a><div class="pCellBody">new <code class="cCode">String(</code><code class="cVariable">string-literal</code><code class="cCode">)</code></div></td></tr></table></div><p class="pBody"></p><a name="wp70875"> </a><p class="pBody">You use an expression to set the value of a property whose type is a compound Java programming language type. The type returned from an expression must match or be castable to the type of the property. </p><a name="wp74344"> </a><p class="pBody">The Duke's Bookstore application demonstrates how to use the <code class="cCode">setProperty</code> element to set the current book from a request parameter in the database helper bean in <code class="cCode"><a href="../examples/web/bookstore2/web/bookdetails.txt" target="_blank">bookstore2/web/bookdetails.jsp</a></code>:</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative"><c:set var="bid" value="${param.bookId}"/><jsp:setProperty name="bookDB" property="bookId" value="${bid}" /><a name="wp76923"> </a></pre></div><a name="wp70886"> </a><p class="pBody">The following fragment from the page <code class="cCode"><a href="../examples/web/bookstore2/web/bookshowcart.txt" target="_blank">bookstore2/web/bookshowcart.jsp</a></code> illustrates how to initialize a <code class="cCode">BookDB</code> bean with a <code class="cCode">database</code> object. Because the initialization is nested in a <code class="cCode">useBean</code> element, it is only executed when the bean is created.</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative"><jsp:useBean id="bookDB" class="database.BookDB" scope="page"> <jsp:setProperty name="bookDB" property="database" value="${bookDBAO}" /></jsp:useBean><a name="wp74308"> </a></pre></div><a name="wp74296"> </a><h3 class="pHeading2">Retrieving JavaBeans Component Properties</h3><a name="wp70891"> </a><p class="pBody">The main way to retrieve JavaBeans component properties is with the JSP expression language. Thus, to retrieve a book title, the Duke's Bookstore application uses the following expression:</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">${bookDB.bookDetails.title}<a name="wp75014"> </a></pre></div><a name="wp75009"> </a><p class="pBody">Another way to retrieve component properties is to use the <code class="cCode">jsp:getProperty</code> element. This element converts the value of the property into a <code class="cCode">String</code> and inserts the value into the response stream:</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative"><code class="cCode"><jsp:getProperty name="</code><code class="cVariable">beanName</code><code class="cCode">" property="</code><code class="cVariable">propName</code><code class="cCode">"/></code><a name="wp70893"> </a></pre></div><a name="wp70895"> </a><p class="pBody">Note that <code class="cVariable">beanName</code> must be the same as that specified for the <code class="cCode">id</code> attribute in a <code class="cCode">useBean</code> element, and there must be a <code class="cCode">get</code><code class="cVariable">PropName</code> method in the JavaBeans component. Although the preferred approach to getting properties is to use an EL expression, the <code class="cCode">getProperty</code> element is available if you need to disable expression evaluation.</p> </blockquote> <img src="images/blueline.gif" width="550" height="8" ALIGN="BOTTOM" NATURALSIZEFLAG="3" ALT="Divider"> <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"><p><font size="-1">All of the material in <em>The J2EE(TM) 1.4 Tutorial</em> is <a href="J2EETutorialFront2.html">copyright</a>-protected and may not be published in other workswithout express written permission from Sun Microsystems.</font> </body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -