JavaBean是特殊的Java類,使用Java語言書寫,并且遵守規範:
提供一個預設的無參構造函數。
需要被序列化并且實作了Serializable接口。
可能有一系列可讀寫屬性。
可能有一系列的"getter"或"setter"方法。
<code>package</code> <code>com.cathy.domain;</code>
<code>public</code> <code>class</code> <code>Category </code><code>implements</code> <code>java.io.Serializable{</code>
<code> </code><code>public</code> <code>Category(){}</code>
<code> </code><code>private</code> <code>int</code> <code>cateId;</code>
<code> </code><code>private</code> <code>String cateName;</code>
<code> </code><code>public</code> <code>int</code> <code>getCateId() {</code>
<code> </code><code>return</code> <code>cateId;</code>
<code> </code><code>}</code>
<code> </code><code>public</code> <code>void</code> <code>setCateId(</code><code>int</code> <code>cateId) {</code>
<code> </code><code>this</code><code>.cateId = cateId;</code>
<code> </code><code>public</code> <code>String getCateName() {</code>
<code> </code><code>return</code> <code>cateName;</code>
<code> </code><code>public</code> <code>void</code> <code>setCateName(String cateName) {</code>
<code> </code><code>this</code><code>.cateName = cateName;</code>
<code>}</code>
1. <jsp:useBean> 标簽可以在JSP中聲明一個JavaBean,文法格式如下:
<code><jsp:useBean id=</code><code>"bean 的名字"</code> <code>scope=</code><code>"bean 的作用域"</code> <code>/></code>
其中scope的值可以是page,request,session或application
2.設定和擷取JavaBean屬性
在 <jsp:useBean> 标簽主體中使用 <jsp:getProperty/> 标簽來調用 getter 方法擷取屬性,使用 <jsp:setProperty/> 标簽調用 setter 方法設定屬性。文法格式:
<code><jsp:useBean id=</code><code>"id"</code> <code>class</code><code>=</code><code>"bean 類"</code> <code>scope=</code><code>"bean 作用域"</code><code>></code>
<code><jsp:setProperty name=</code><code>"bean 的 id"</code> <code>property=</code><code>"屬性名"</code>
<code>value=</code><code>"value"</code><code>/></code>
<code><jsp:getProperty name=</code><code>"bean 的 id"</code> <code>property=</code><code>"屬性名"</code><code>/></code>
<code> </code><code>...........</code>
<code></jsp:useBean></code>
其中name屬性指的是Bean的id屬性,property屬性指的是想要調用的getter或setter方法
1.示例:在目前jsp頁面設定和擷取javabean屬性
<code><jsp:useBean id=</code><code>"category"</code> <code>class</code><code>=</code><code>"com.cathy.domain.Category"</code><code>></code>
<code> </code><code><jsp:setProperty name=</code><code>"category"</code> <code>property=</code><code>"cateId"</code> <code>value=</code><code>"2"</code><code>></jsp:setProperty></code>
<code> </code><code><jsp:setProperty name=</code><code>"category"</code> <code>property=</code><code>"cateName"</code> <code>value=</code><code>"女裝"</code><code>></jsp:setProperty></code>
<code><div></code>
<code> </code><code>id:<jsp:getProperty name=</code><code>"category"</code> <code>property=</code><code>"cateId"</code><code>></jsp:getProperty></code>
<code></div></code>
<code> </code><code>name:<jsp:getProperty name=</code><code>"category"</code> <code>property=</code><code>"cateName"</code><code>></jsp:getProperty></code>
2.示例:在edit.jsp 頁面form表單送出資訊,在detail.jsp頁面中顯示。
edit.jsp
<code><form action=</code><code>"/category/detail"</code> <code>method=</code><code>"post"</code><code>></code>
<code> </code><code>商品id:<input type=</code><code>"number"</code> <code>name=</code><code>"cateId"</code><code>></code>
<code> </code><code>商品名稱:<input type=</code><code>"text"</code> <code>name=</code><code>"cateName"</code><code>></code>
<code> </code><code><input type=</code><code>"submit"</code> <code>value=</code><code>"送出"</code><code>></code>
<code></form></code>
detail.jsp
如果表單中的屬性名稱和JavaBean中屬性對應,那麼可以簡化jsp:setProperty寫法,直接property="*"
<code> </code><code><jsp:setProperty name=</code><code>"category"</code> <code>property=</code><code>"*"</code><code>></jsp:setProperty></code>
<code><table></code>
<code> </code><code><tr></code>
<code> </code><code><td>id:</td><td><jsp:getProperty name=</code><code>"category"</code> <code>property=</code><code>"cateId"</code><code>></jsp:getProperty></td></code>
<code> </code><code></tr></code>
<code> </code><code><tr><td>名稱:</td><td><jsp:getProperty name=</code><code>"category"</code> <code>property=</code><code>"cateName"</code><code>></jsp:getProperty></td></tr></code>
<code></table></code>
問題:通過表單送出中文資料時遇到亂碼問題:
<code><%request.setCharacterEncoding(</code><code>"UTF-8"</code><code>);%></code>
效果:

3.示例:JavaBean實作通路計數
首先建立計數JavaBean:
<code>public</code> <code>class</code> <code>Counter {</code>
<code> </code><code>private</code> <code>int</code> <code>total=</code><code>0</code><code>;</code>
<code> </code><code>public</code> <code>int</code> <code>getTotal() {</code>
<code> </code><code>return</code> <code>total++;</code>
在index.jsp和edit.jsp檔案中調用該JavaBean,注意将scope設定為application。
<code><jsp:useBean id=</code><code>"counter"</code> <code>class</code><code>=</code><code>"com.cathy.domain.Counter"</code> <code>scope=</code><code>"application"</code><code>></jsp:useBean></code>
<code> </code><code>通路計數:<jsp:getProperty name=</code><code>"counter"</code> <code>property=</code><code>"total"</code><code>></jsp:getProperty></code>
重新整理這兩個頁面時,都能實作計數器累加。
本文轉自 陳敬(Cathy) 部落格園部落格,原文連結:http://www.cnblogs.com/janes/p/6518322.html,如需轉載請自行聯系原作者