JAVA入門[12]-JavaBean
阿新 • • 發佈:2017-05-17
brush his str 什麽 pro jsp頁面 想要 函數 系列
方法設置屬性。語法格式:
一.什麽是JavaBean
JavaBean是特殊的Java類,使用Java語言書寫,並且遵守規範:
- 提供一個默認的無參構造函數。
- 需要被序列化並且實現了Serializable接口。
- 可能有一系列可讀寫屬性。
- 可能有一系列的"getter"或"setter"方法。
二.定義JavaBean
package com.cathy.domain; public class Category implements java.io.Serializable{ public Category(){} private int cateId; private String cateName; public int getCateId() { return cateId; } public void setCateId(int cateId) { this.cateId = cateId; } public String getCateName() { return cateName; } public void setCateName(String cateName) { this.cateName = cateName; } }
三、訪問JavaBean
1. <jsp:useBean> 標簽可以在JSP中聲明一個JavaBean,語法格式如下:
<jsp:useBean id="bean 的名字" scope="bean 的作用域" />
其中scope的值可以是page,request,session或application
2.設置和獲取JavaBean屬性
在 <jsp:useBean> 標簽主體中使用 <jsp:getProperty/> 標簽來調用 getter 方法獲取屬性,使用 <jsp:setProperty/> 標簽調用 setter
<jsp:useBean id="id" class="bean 類" scope="bean 作用域"> <jsp:setProperty name="bean 的 id" property="屬性名" value="value"/> <jsp:getProperty name="bean 的 id" property="屬性名"/> ........... </jsp:useBean>
其中name屬性指的是Bean的id屬性,property屬性指的是想要調用的getter或setter方法
四、示例
1.示例:在當前jsp頁面設置和獲取javabean屬性
<jsp:useBean id="category" class="com.cathy.domain.Category"> <jsp:setProperty name="category" property="cateId" value="2"></jsp:setProperty> <jsp:setProperty name="category" property="cateName" value="女裝"></jsp:setProperty> </jsp:useBean> <div> id:<jsp:getProperty name="category" property="cateId"></jsp:getProperty> </div> <div> name:<jsp:getProperty name="category" property="cateName"></jsp:getProperty> </div>
2.示例:在edit.jsp 頁面form表單提交信息,在detail.jsp頁面中顯示。
edit.jsp
<form action="/category/detail" method="post"> 商品id:<input type="number" name="cateId"> 商品名稱:<input type="text" name="cateName"> <input type="submit" value="提交"> </form>
detail.jsp
如果表單中的屬性名稱和JavaBean中屬性對應,那麽可以簡化jsp:setProperty寫法,直接property="*"
<jsp:useBean id="category" class="com.cathy.domain.Category"> <jsp:setProperty name="category" property="*"></jsp:setProperty> </jsp:useBean> <table> <tr> <td>id:</td><td><jsp:getProperty name="category" property="cateId"></jsp:getProperty></td> </tr> <tr><td>名稱:</td><td><jsp:getProperty name="category" property="cateName"></jsp:getProperty></td></tr> </table>
問題:通過表單提交中文數據時遇到亂碼問題:
<%request.setCharacterEncoding("UTF-8");%>
效果:
3.示例:JavaBean實現訪問計數
首先創建計數JavaBean:
public class Counter { private int total=0; public int getTotal() { return total++; } }
在index.jsp和edit.jsp文件中調用該JavaBean,註意將scope設置為application。
<jsp:useBean id="counter" class="com.cathy.domain.Counter" scope="application"></jsp:useBean> <div> 訪問計數:<jsp:getProperty name="counter" property="total"></jsp:getProperty> </div>
刷新這兩個頁面時,都能實現計數器累加。
JAVA入門[12]-JavaBean