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,如需转载请自行联系原作者