📄 backing beans.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>
<body>
<p>Backing Beans</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使用 <span class="nobr">
<a title="Visit page outside Confluence" rel="nofollow" href="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=978">
JavaBean<sup><img class="rendericon" height="7" alt="" src="http://www.javaworld.com.tw/confluence/images/icons/linkext7.gif" width="7" align="absMiddle" border="0"></sup></a></span>
來達到程式邏輯與視圖分離的目的,在JSF中的Bean其角色是屬於Backing Bean,又稱之為Glue
Bean,其作用是在真正的業務邏輯Bean及UI元件之間搭起橋樑,在Backing
Bean中會呼叫業務邏輯Bean處理使用者的請求,或者是將業務處理結果放置其中,等待UI元件取出當中的值並顯示結果給使用者。<p>
JSF將Bean的管理集中在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="codeContent">
<pre class="code-java">....
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
....</pre>
</div>
</div>
<p> 這個例子我們在 <span class="nobr">
<a title="Visit page outside Confluence" rel="nofollow" href="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2644">
第一個JSF程式<sup><img class="rendericon" height="7" alt="" src="http://www.javaworld.com.tw/confluence/images/icons/linkext7.gif" width="7" align="absMiddle" border="0"></sup></a></span>
看過,<managed-bean-class>設定所要使用的Bean類別,<managed-bean-name>設定之名稱,可供我們在JSF頁面上使用Expression
Language來取得或設定Bean的屬性,例如:</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"><h:inputText value=<span class="code-quote">"#{user.name}"</span>/></pre>
</div>
</div>
<p>
<managed-bean-scope>設定Bean的存活範圍,您可以設定為request、session
與application,設定為request時,Bean的存活時間為請求階最,設定為session則在使用者應用程式交互開始,直到關閉瀏覽器或顯式的結束會話為止(例如登出程式),設定為application的話,則Bean會一直存活,直到應用程式關閉為止。</p>
<p>
您還可以將存活範圍設定為none,當設定為none時會在需要的時候生成一個新的Bean,例如您在一個method中想要生成一個臨時的Bean,就可以將之設定為none。</p>
<p> 在JSF頁面上要取得Bean的屬性,是使用 <span class="nobr">
<a title="Visit page outside Confluence" rel="nofollow" href="http://www.javaworld.com.tw/confluence/display/J2EE/JSF+Expression+Language">
JSF表示語言 (Expression Language)<sup><img class="rendericon" height="7" alt="" src="http://www.javaworld.com.tw/confluence/images/icons/linkext7.gif" width="7" align="absMiddle" border="0"></sup></a></span>,要注意到的是,<span class="nobr"><a title="Visit page outside Confluence" rel="nofollow" href="http://www.javaworld.com.tw/confluence/display/J2EE/JSF+Expression+Language">JSF表示語言<sup><img class="rendericon" height="7" alt="" src="http://www.javaworld.com.tw/confluence/images/icons/linkext7.gif" width="7" align="absMiddle" border="0"></sup></a></span>是寫成
#{expression},而 JSP表示語言 是寫成
${expression},因為表示層可能是使用JSP,所以必須特別區分,另外要注意的是,JSF的標籤上之屬性設定時,只接受JSF表示語言。</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/display/J2EE/Backing+Beans" dc:identifier="http://www.javaworld.com.tw/confluence/display/J2EE/Backing+Beans" dc:title="Backing Beans" trackback:ping="http://www.javaworld.com.tw/confluence/rpc/trackback/2669"/></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 + -