📄 简单的表格.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>
<body>
<p>简单的表格</p>
<div id="PageContent">
<table cellSpacing="0" cellPadding="0" width="100%" border="0" id="table1">
<tr>
<td class="pagebody" vAlign="top">
<table style="CLEAR: both" cellSpacing="0" cellPadding="0" width="100%" border="0" id="table2">
<tr>
<td class="pagecontent" vAlign="top" width="100%">
<div class="wiki-content">
很多資料經常使用表格來表現,JSF提供<h:dataTable>標籤讓您得以列舉資料並使用表格方式來呈現,舉個實際的例子來看,假設您撰寫了以下的兩個類別:<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
<div class="codeHeader" style="BORDER-BOTTOM-STYLE: solid">
<b>UserBean.java</b></div>
<div class="codeContent">
<pre class="code-java"><span class="code-keyword">package</span> onlyfun.caterpillar;
<span class="code-keyword">public</span> class UserBean {
<span class="code-keyword">private</span> <span class="code-object">String</span> name;
<span class="code-keyword">private</span> <span class="code-object">String</span> password;
<span class="code-keyword">public</span> UserBean() {
}
<span class="code-keyword">public</span> UserBean(<span class="code-object">String</span> name, <span class="code-object">String</span> password) {
<span class="code-keyword">this</span>.name = name;
<span class="code-keyword">this</span>.password = password;
}
<span class="code-keyword">public</span> <span class="code-object">String</span> getName() {
<span class="code-keyword">return</span> name;
}
<span class="code-keyword">public</span> void setName(<span class="code-object">String</span> name) {
<span class="code-keyword">this</span>.name = name;
}
<span class="code-keyword">public</span> <span class="code-object">String</span> getPassword() {
<span class="code-keyword">return</span> password;
}
<span class="code-keyword">public</span> void setPassword(<span class="code-object">String</span> password) {
<span class="code-keyword">this</span>.password = password;
}
}</pre>
</div>
</div>
<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
<div class="codeHeader" style="BORDER-BOTTOM-STYLE: solid">
<b>TableBean.java</b></div>
<div class="codeContent">
<pre class="code-java"><span class="code-keyword">package</span> onlyfun.caterpillar;
<span class="code-keyword">import</span> java.util.*;
<span class="code-keyword">public</span> class TableBean {
<span class="code-keyword">private</span> List userList;
<span class="code-keyword">public</span> List getUserList() {
<span class="code-keyword">if</span>(userList == <span class="code-keyword">null</span>) {
userList = <span class="code-keyword">new</span> ArrayList();
userList.add(<span class="code-keyword">new</span> UserBean(<span class="code-quote">"caterpillar"</span>, <span class="code-quote">"123456"</span>));
userList.add(<span class="code-keyword">new</span> UserBean(<span class="code-quote">"momor"</span>, <span class="code-quote">"654321"</span>));
userList.add(<span class="code-keyword">new</span> UserBean(<span class="code-quote">"becky"</span>, <span class="code-quote">"7890"</span>));
}
<span class="code-keyword">return</span> userList;
}
}</pre>
</div>
</div>
<p>
在TableBean中,我們假設getUserList()方法實際上是從資料庫中查詢出UserBean的內容,之後傳回List物件,若我們的
faces-config.xml如下:</p>
<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
<div class="codeHeader" style="BORDER-BOTTOM-STYLE: solid">
<b>faces-config.xml</b></div>
<div class="codeContent">
<pre class="code-java"><?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?>
<!DOCTYPE faces-config PUBLIC "-<span class="code-comment">//Sun Microsystems,
</span> Inc.<span class="code-comment">//DTD JavaServer Faces Config 1.0//EN"
</span> <span class="code-quote">"http:<span class="code-comment">//java.sun.com/dtd/web-facesconfig_1_0.dtd"</span>>
</span>
<faces-config>
<managed-bean>
<managed-bean-name>tableBean</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.TableBean
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>userBean</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config></pre>
</div>
</div>
<p> 我們可以如下使用<h:dataTable>來產生表格資料:</p>
<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
<div class="codeHeader" style="BORDER-BOTTOM-STYLE: solid">
<b>index.jsp</b></div>
<div class="codeContent">
<pre class="code-java"><%@ taglib uri=<span class="code-quote">"http:<span class="code-comment">//java.sun.com/jsf/html"</span> prefix="h" %>
</span> <%@ taglib uri=<span class="code-quote">"http:<span class="code-comment">//java.sun.com/jsf/core"</span> prefix="f" %>
</span> <html>
<body>
<f:view>
<h:dataTable value=<span class="code-quote">"#{tableBean.userList}"</span> <span class="code-keyword">var</span>=<span class="code-quote">"user"</span>>
<h:column>
<h:outputText value=<span class="code-quote">"#{user.name}"</span>/>
</h:column>
<h:column>
<h:outputText value=<span class="code-quote">"#{user.password}"</span>/>
</h:column>
</h:dataTable>
</f:view>
</body>
</html></pre>
</div>
</div>
<p> <h:dataTable>的value值綁定tableBean的userList方法,它會一個一個取出
List中的資料並設定給var設定的user,之後在每一個column中我們可以顯示所列舉出的user.name與user.password,程式的結果會如下所示:</p>
<p><br clear="all">
所產生的HTML表格標籤如下:</p>
<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
<div class="codeContent">
<pre class="code-java"><table>
<tbody>
<tr>
<td>caterpillar</td>
<td>123456</td>
</tr>
<tr>
<td>momor</td>
<td>654321</td>
</tr>
<tr>
<td>becky</td>
<td>7890</td>
</tr>
</tbody>
</table></pre>
</div>
</div>
<p> <h:dataTable>的value值綁定的對象可以是以下的型態:</p>
<ul>
<li>陣列
</li>
<li>java.util.List的實例
</li>
<li>java.sql.ResultSet的實例
</li>
<li>javax.servlet.jsp.jstl.sql.Result的實例
</li>
<li>javax.faces.model.DataModel的實例 </li>
</ul>
</div>
<!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><rdf:Description rdf:about="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2796" dc:identifier="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2796" dc:title="簡單的表格" trackback:ping="http://www.javaworld.com.tw/confluence/rpc/trackback/2796"/></rdf:RDF>--><!-- Root decorator: all decisions about how a page is to be decorated via the inline decoration begins here.--><!-- Switch based upon the context. However, for now, just delegate to a decorator identified directly by the context.--></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -