﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-爪哇一角-文章分类-JSF</title><link>http://www.blogjava.net/ocean07000814/category/37318.html</link><description>共同探讨STRUTS#HIBERNATE#SPRING#EJB等技术</description><language>zh-cn</language><lastBuildDate>Mon, 31 May 2010 15:54:02 GMT</lastBuildDate><pubDate>Mon, 31 May 2010 15:54:02 GMT</pubDate><ttl>60</ttl><item><title>十三 JSF技术的实现—Myfaces介绍</title><link>http://www.blogjava.net/ocean07000814/articles/252057.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252057.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252057.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252057.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252057.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 9" />
<meta name="Originator" content="Microsoft Word 9" />
<link rel="File-List" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:宋体;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-alt:"MS Gothic";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:1;
font-size:24.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h2
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:2;
font-size:18.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h3
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:3;
font-size:14.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h4
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
h5
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h6
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:6;
font-size:8.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:1.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:2.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:3.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:5.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:6.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:7.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"索引 1";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ ゴシック";
mso-fareast-font-family:SimSun;
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;
mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
{color:#000099;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:#339966;
text-decoration:underline;
text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
background:navy;
font-size:10.5pt;
font-family:Arial;
mso-fareast-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p
{margin-right:0mm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0mm;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;}
pre
{margin:0mm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
font-size:10.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Courier New";
color:windowtext;}
span.code-keyword
{mso-style-name:code-keyword;}
span.code-object
{mso-style-name:code-object;}
span.hilite1
{mso-style-name:hilite1;}
span.hilite2
{mso-style-name:hilite2;}
span.wenzhangcon
{mso-style-name:wenzhang_con;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:99.25pt 30.0mm 30.0mm 30.0mm;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:192348167;
mso-list-type:hybrid;
mso-list-template-ids:-704846568 -618902396 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
mso-ansi-font-size:11.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"ＭＳ 明朝";}
@list l1
{mso-list-id:231738792;
mso-list-type:hybrid;
mso-list-template-ids:157436104 830738612 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l1:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-ansi-font-weight:normal;}
@list l2
{mso-list-id:535385560;
mso-list-type:hybrid;
mso-list-template-ids:1595598884 -360808338 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l2:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:538667892;
mso-list-type:hybrid;
mso-list-template-ids:333587862 -1594848292 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l3:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";}
@list l4
{mso-list-id:655108335;
mso-list-type:hybrid;
mso-list-template-ids:1941334218 -1229129530 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l4:level1
{mso-level-tab-stop:29.05pt;
mso-level-number-position:left;
margin-left:29.05pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:666832420;
mso-list-type:hybrid;
mso-list-template-ids:1385218472 1513126010 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l5:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:SimSun;
mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
@list l6
{mso-list-id:703020059;
mso-list-type:hybrid;
mso-list-template-ids:-1615819334 448289824 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l6:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l7
{mso-list-id:1930306018;
mso-list-type:hybrid;
mso-list-template-ids:-689127960 -806612280 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l7:level1
{mso-level-text:%1．;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l8
{mso-list-id:2087264629;
mso-list-type:hybrid;
mso-list-template-ids:497178426 -145033720 -1520680842 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l8:level1
{mso-level-tab-stop:19.5pt;
mso-level-number-position:left;
margin-left:19.5pt;
text-indent:-19.5pt;
font-family:SimSun;
mso-ascii-font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-ansi-font-weight:bold;}
@list l8:level2
{mso-level-tab-stop:39.0pt;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l9
{mso-list-id:2125735041;
mso-list-type:hybrid;
mso-list-template-ids:705081986 -1428633308 458388728 -638169918 351016214 1587436938 45270452 902581502 227823400 1010046992;}
@list l9:level1
{mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
-->
</style>
<p class="MsoNormal"><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">是一个新的基于</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">MVC</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">模型的</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">web</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">应用框架技术。在概念和特征方面，尤其是组件方面，超过了著名的</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Struts</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">框架。而</span></span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Myfaces</span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">是</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Apache</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">软件基金的一个项目，它实现了</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">框架。同样</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">sun</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">公司也有一个参考实现</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"> JSF RI</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">。</span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;">但是<span lang="EN-US">myfaces比JSF RI提供了更多的组件和特征。</span></span></span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Myfaces</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">组件是一套用于</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">的组件，里面的</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">tomahawk</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">包包含了丰富的组件，只需要几个简单的标签就可以实现一些很有用的功能。</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">例如：树，文件的上传下载，日历 等</span><span class="wenzhangcon"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">具体资料：</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><a href="http://myfaces.apache.org/index.html">http://myfaces.apache.org/index.html</a>
<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">当然，还有基于</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">的应用框架，他们也提供了很多好用的组件，所以在你试图自己开发组件之前，先看看有没有现成的可以用噢。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<img src ="http://www.blogjava.net/ocean07000814/aggbug/252057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:51 <a href="http://www.blogjava.net/ocean07000814/articles/252057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>十二 自定义Renderer</title><link>http://www.blogjava.net/ocean07000814/articles/252056.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252056.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252056.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252056.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252056.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 9" />
<meta name="Originator" content="Microsoft Word 9" />
<link rel="File-List" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:宋体;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-alt:"MS Gothic";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:1;
font-size:24.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h2
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:2;
font-size:18.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h3
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:3;
font-size:14.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h4
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
h5
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h6
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:6;
font-size:8.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:1.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:2.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:3.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:5.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:6.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:7.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"索引 1";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ ゴシック";
mso-fareast-font-family:SimSun;
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;
mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
{color:#000099;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:#339966;
text-decoration:underline;
text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
background:navy;
font-size:10.5pt;
font-family:Arial;
mso-fareast-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p
{margin-right:0mm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0mm;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;}
pre
{margin:0mm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
font-size:10.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Courier New";
color:windowtext;}
span.code-keyword
{mso-style-name:code-keyword;}
span.code-object
{mso-style-name:code-object;}
span.hilite1
{mso-style-name:hilite1;}
span.hilite2
{mso-style-name:hilite2;}
span.wenzhangcon
{mso-style-name:wenzhang_con;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:99.25pt 30.0mm 30.0mm 30.0mm;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:192348167;
mso-list-type:hybrid;
mso-list-template-ids:-704846568 -618902396 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
mso-ansi-font-size:11.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"ＭＳ 明朝";}
@list l1
{mso-list-id:231738792;
mso-list-type:hybrid;
mso-list-template-ids:157436104 830738612 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l1:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-ansi-font-weight:normal;}
@list l2
{mso-list-id:535385560;
mso-list-type:hybrid;
mso-list-template-ids:1595598884 -360808338 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l2:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:538667892;
mso-list-type:hybrid;
mso-list-template-ids:333587862 -1594848292 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l3:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";}
@list l4
{mso-list-id:655108335;
mso-list-type:hybrid;
mso-list-template-ids:1941334218 -1229129530 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l4:level1
{mso-level-tab-stop:29.05pt;
mso-level-number-position:left;
margin-left:29.05pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:666832420;
mso-list-type:hybrid;
mso-list-template-ids:1385218472 1513126010 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l5:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:SimSun;
mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
@list l6
{mso-list-id:703020059;
mso-list-type:hybrid;
mso-list-template-ids:-1615819334 448289824 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l6:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l7
{mso-list-id:1930306018;
mso-list-type:hybrid;
mso-list-template-ids:-689127960 -806612280 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l7:level1
{mso-level-text:%1．;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l8
{mso-list-id:2087264629;
mso-list-type:hybrid;
mso-list-template-ids:497178426 -145033720 -1520680842 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l8:level1
{mso-level-tab-stop:19.5pt;
mso-level-number-position:left;
margin-left:19.5pt;
text-indent:-19.5pt;
font-family:SimSun;
mso-ascii-font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-ansi-font-weight:bold;}
@list l8:level2
{mso-level-tab-stop:39.0pt;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l9
{mso-list-id:2125735041;
mso-list-type:hybrid;
mso-list-template-ids:705081986 -1428633308 458388728 -638169918 351016214 1587436938 45270452 902581502 227823400 1010046992;}
@list l9:level1
{mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
-->
</style>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">上面的例子，表现层的编码，解码工作都是</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">自己完成的，但是这样的话，自定义</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">的重用行就很差了。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">所以这里要自定义一个</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">来做编码，解码工作。要自定义一个</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">，需要继承</span></span><span style="font-family: Arial;" lang="EN-US">javax.faces.render.Renderer</span><span style="font-family: SimSun;" lang="ZH-CN">：</span><span style="font-family: Arial;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">package
test;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
java.io.IOException;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
java.util.Map;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.component.EditableValueHolder;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.component.UIComponent;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.component.UIInput;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.context.FacesContext;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.context.ResponseWriter;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.render.Renderer;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">public
class TextCmdRenderer extends Renderer {<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-indent: 22pt;"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">private static final String TEXT =
".text";<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>private static final String CMD =
".cmd";<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>//</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">编码</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>public void encodeBegin(FacesContext
context,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UIComponent component) throws
IOException {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>ResponseWriter writer = context.getResponseWriter();<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>String clientId = component.getClientId(context);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp; </span><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>encodeTextField(component, writer, clientId);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>encodeCommand(component, writer, clientId);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>//</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">解码</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>public void decode(FacesContext context,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UIComponent component) {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>Map reqParaMap = context.getExternalContext().<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>getRequestParameterMap();<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>String clientId = component.getClientId(context);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp; </span><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>String submittedValue =<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(String) reqParaMap.get(clientId + TEXT);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>((EditableValueHolder) component).setSubmittedValue(<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>submittedValue);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>((EditableValueHolder) component).setValid(true);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>private void encodeTextField(UIComponent
component,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ResponseWriter writer, String clientId) <o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>throws IOException {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>writer.startElement("input", component);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>writer.writeAttribute("name", clientId + TEXT, null);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp; </span><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>Object value = ((UIInput) component).getValue();<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>if(value != null) {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>writer.writeAttribute("value",<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>value.toString(), null);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>String size =<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>(String) component.getAttributes().get("size");<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>if(size != null) {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>writer.writeAttribute("size", size, null);<span>&nbsp; </span><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>writer.endElement("input");<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>private void encodeCommand(UIComponent
component,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ResponseWriter writer, <o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String clientId) throws IOException {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>writer.startElement("input", component);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>writer.writeAttribute("type", "submit", null);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>writer.writeAttribute("name", clientId + CMD, null);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>writer.writeAttribute("value", "submit", null);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;
</span>writer.endElement("input");<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">这个</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">和之前</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">的编码解码过程类似，只是方法上多了一个</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">UIComponent</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">参数，用来表示对应的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">faces-config.xml</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">中配置定义的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">：</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun; color: #3f5fbf;" lang="EN-US">&lt;!-- 自定义Renderer --&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">render-kit</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">renderer</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">component-family</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>javax.faces.Input</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">component-family</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">renderer-type</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>test.TextCmd</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">renderer-type</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">renderer-class</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>test.TextCmdRenderer</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">renderer-class</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">renderer</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">render-kit</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">定义好了之后，只需要把上面自定义的那个</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Tag</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">文件稍微修改一下就可以了：</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&#8230;</span></span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;" lang="EN-US"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="text-align: left;" align="left"><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;" lang="EN-US">public</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"> String getComponentType() {</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;" lang="EN-US">//return "test.TextWithCmd";</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;" lang="EN-US">return</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff;" lang="EN-US">"javax.faces.Input"</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>}</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span></span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;" lang="EN-US">public</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"> <span style="background: silver none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">String</span>
getRendererType() {</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #3f7f5f;" lang="EN-US">//return null;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp; </span></span><strong><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-US">return</span></strong><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-US"> </span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: #2a00ff; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-US">"test.TextCmd"</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" lang="EN-US">;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;" lang="EN-US">}</span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&#8230;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">同样的，你也可以在自定义的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">中设置使用的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">。修改上面自定义</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">的构造函数就可以了。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">大家自己去试一下吧。具体程序参看示例程序。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<img src ="http://www.blogjava.net/ocean07000814/aggbug/252056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:50 <a href="http://www.blogjava.net/ocean07000814/articles/252056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>十一 自定义组件标签</title><link>http://www.blogjava.net/ocean07000814/articles/252055.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252055.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252055.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252055.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252055.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}Normal002...&nbsp;&nbsp;<a href='http://www.blogjava.net/ocean07000814/articles/252055.html'>阅读全文</a><img src ="http://www.blogjava.net/ocean07000814/aggbug/252055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:50 <a href="http://www.blogjava.net/ocean07000814/articles/252055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>十 自定义UIComponent</title><link>http://www.blogjava.net/ocean07000814/articles/252054.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252054.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252054.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252054.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252054.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252054.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 9" />
<meta name="Originator" content="Microsoft Word 9" />
<link rel="File-List" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_editdata.mso" /><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:宋体;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-alt:"MS Gothic";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:1;
font-size:24.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h2
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:2;
font-size:18.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h3
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:3;
font-size:14.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h4
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
h5
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h6
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:6;
font-size:8.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:1.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:2.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:3.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:5.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:6.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:7.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"索引 1";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ ゴシック";
mso-fareast-font-family:SimSun;
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;
mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
{color:#000099;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:#339966;
text-decoration:underline;
text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
background:navy;
font-size:10.5pt;
font-family:Arial;
mso-fareast-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p
{margin-right:0mm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0mm;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;}
pre
{margin:0mm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
font-size:10.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Courier New";
color:windowtext;}
span.code-keyword
{mso-style-name:code-keyword;}
span.code-object
{mso-style-name:code-object;}
span.hilite1
{mso-style-name:hilite1;}
span.hilite2
{mso-style-name:hilite2;}
span.wenzhangcon
{mso-style-name:wenzhang_con;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:99.25pt 30.0mm 30.0mm 30.0mm;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:192348167;
mso-list-type:hybrid;
mso-list-template-ids:-704846568 -618902396 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
mso-ansi-font-size:11.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"ＭＳ 明朝";}
@list l1
{mso-list-id:231738792;
mso-list-type:hybrid;
mso-list-template-ids:157436104 830738612 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l1:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-ansi-font-weight:normal;}
@list l2
{mso-list-id:535385560;
mso-list-type:hybrid;
mso-list-template-ids:1595598884 -360808338 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l2:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:538667892;
mso-list-type:hybrid;
mso-list-template-ids:333587862 -1594848292 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l3:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";}
@list l4
{mso-list-id:655108335;
mso-list-type:hybrid;
mso-list-template-ids:1941334218 -1229129530 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l4:level1
{mso-level-tab-stop:29.05pt;
mso-level-number-position:left;
margin-left:29.05pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:666832420;
mso-list-type:hybrid;
mso-list-template-ids:1385218472 1513126010 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l5:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:SimSun;
mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
@list l6
{mso-list-id:703020059;
mso-list-type:hybrid;
mso-list-template-ids:-1615819334 448289824 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l6:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l7
{mso-list-id:1930306018;
mso-list-type:hybrid;
mso-list-template-ids:-689127960 -806612280 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l7:level1
{mso-level-text:%1．;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l8
{mso-list-id:2087264629;
mso-list-type:hybrid;
mso-list-template-ids:497178426 -145033720 -1520680842 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l8:level1
{mso-level-tab-stop:19.5pt;
mso-level-number-position:left;
margin-left:19.5pt;
text-indent:-19.5pt;
font-family:SimSun;
mso-ascii-font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-ansi-font-weight:bold;}
@list l8:level2
{mso-level-tab-stop:39.0pt;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l9
{mso-list-id:2125735041;
mso-list-type:hybrid;
mso-list-template-ids:705081986 -1428633308 458388728 -638169918 351016214 1587436938 45270452 902581502 227823400 1010046992;}
@list l9:level1
{mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
-->
</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1034" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">这里介绍的是让</span></span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">自身负责编码，解码的例子。</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">我们设置一个简单的组件，一个文本框加一个按钮。</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter" />
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0" />
<v:f eqn="sum @0 1 0" />
<v:f eqn="sum 0 0 @1" />
<v:f eqn="prod @2 1 2" />
<v:f eqn="prod @3 21600 pixelWidth" />
<v:f eqn="prod @3 21600 pixelHeight" />
<v:f eqn="sum @0 0 1" />
<v:f eqn="prod @6 1 2" />
<v:f eqn="prod @7 21600 pixelWidth" />
<v:f eqn="sum @8 21600 0" />
<v:f eqn="prod @7 21600 pixelHeight" />
<v:f eqn="sum @10 21600 0" />
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />
<o:lock v:ext="edit" aspectratio="t" />
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:111.75pt;
height:24.75pt'>
<v:imagedata src="file:///C:/DOCUME~1/sunlin/LOCALS~1/Temp/msoclip1/12/clip_image001.jpg" o:title="encodedecode-1" />
</v:shape><![endif]--><!--[if !vml]--><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_image001.jpg" v:shapes="_x0000_i1025" width="149" height="33"  alt="" /><!--[endif]--></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">这里我们可以继承已经实现的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">UIComponent</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">组件</span></span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">UIInput</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">。</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">package
test;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
java.io.IOException;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
java.util.Map;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.component.UIInput;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.context.FacesContext;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.context.ResponseWriter;<o:p></o:p></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m0,0l0,21600,21600,21600,21600,0xe">
<v:stroke joinstyle="miter" />
<v:path gradientshapeok="t" o:connecttype="rect" />
</v:shapetype><v:shape id="_x0000_s1027" type="#_x0000_t202" style='position:absolute;
left:0;text-align:left;margin-left:239.55pt;margin-top:.25pt;width:198pt;
height:27pt;z-index:2' /><![endif]--><!--[if !vml]--><span style="position: absolute; z-index: 1; left: 0px; margin-left: 319px; margin-top: 0px; width: 267px; height: 39px;">
<table cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="background: white none repeat scroll 0% 0%; vertical-align: top; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top" width="267" align="left" bgcolor="white" height="39"><!--[endif]--><!--[if !mso]--><span style="position: absolute; left: 0pt; z-index: 2;">
            <table width="100%" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td><!--[endif]-->
                        <div v:shape="_x0000_s1027" style="padding: 3.6pt 7.2pt;" class="shape">
                        <p class="MsoNormal"><span style="font-family: SimSun; color: red;" lang="ZH-CN">继承已经实现</span><span style="color: red;" lang="EN-US">UIComponent</span><span style="font-family: SimSun; color: red;" lang="ZH-CN">的</span><span style="color: red;" lang="EN-US">UIInput</span><span style="font-family: SimSun; color: red;" lang="ZH-CN">。</span><span style="color: red;" lang="EN-US"><o:p></o:p></span></p>
                        </div>
                        <!--[if !mso]--></td>
                    </tr>
                </tbody>
            </table>
            </span><!--[endif]--><!--[if !mso & !vml]-->&nbsp;<!--[endif]--><!--[if !vml]--></td>
        </tr>
    </tbody>
</table>
</span><!--[endif]--><!--[if gte vml 1]><v:oval id="_x0000_s1026" style='position:absolute;
left:0;text-align:left;margin-left:158.55pt;margin-top:.25pt;width:1in;
height:18pt;z-index:1' filled="f" strokecolor="red" strokeweight="2pt" /><![endif]--><!--[if !vml]--><span style="position: relative; z-index: 0;"><span style="position: absolute; left: 210px; top: -1px; width: 99px; height: 27px;"><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_image002.gif" v:shapes="_x0000_s1026" width="99" height="27"  alt="" /></span></span><!--[endif]--><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">public class
UITextWithCmd extends UIInput {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">private
static final String TEXT = ".text";<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>private static final String CMD =
".cmd";<o:p></o:p></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:rect id="_x0000_s1028" style='position:absolute;
left:0;text-align:left;margin-left:14.55pt;margin-top:.25pt;width:162pt;
height:1in;z-index:3' filled="f" strokecolor="red" strokeweight="2pt" /><![endif]--><!--[if !vml]--><span style="position: relative; z-index: 2;"><span style="position: absolute; left: 18px; top: -1px; width: 219px; height: 99px;"><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_image003.gif" v:shapes="_x0000_s1028" width="219" height="99"  alt="" /></span></span><!--[endif]--><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>//</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">不使用</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">进行解码</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:shape id="_x0000_s1029" type="#_x0000_t202" style='position:absolute;left:0;text-align:left;margin-left:203.55pt;
margin-top:9.25pt;width:234pt;height:27pt;z-index:4'>
<v:textbox style='mso-next-textbox:#_x0000_s1029' />
</v:shape><![endif]--><!--[if !vml]--><span style="position: absolute; z-index: 3; left: 0px; margin-left: 271px; margin-top: 12px; width: 315px; height: 39px;">
<table cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="background: white none repeat scroll 0% 0%; vertical-align: top; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top" width="315" align="left" bgcolor="white" height="39"><!--[endif]--><!--[if !mso]--><span style="position: absolute; left: 0pt; z-index: 4;">
            <table width="100%" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td><!--[endif]-->
                        <div v:shape="_x0000_s1029" style="padding: 3.6pt 7.2pt;" class="shape">
                        <p class="MsoNormal"><span style="font-family: SimSun; color: red;" lang="ZH-CN">可以设定此组件的解码，编码不使用</span><span style="color: red;" lang="EN-US">Renderer</span><span style="font-family: SimSun; color: red;" lang="ZH-CN">。</span><span style="color: red;" lang="EN-US"><o:p></o:p></span></p>
                        </div>
                        <!--[if !mso]--></td>
                    </tr>
                </tbody>
            </table>
            </span><!--[endif]--><!--[if !mso & !vml]-->&nbsp;<!--[endif]--><!--[if !vml]--></td>
        </tr>
    </tbody>
</table>
</span><!--[endif]--><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>public UITextWithCmd() {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>setRendererType(null);<span>&nbsp; </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>//--------</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">编码</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">,</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">生成</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">HTML</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">标签</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">--------------<o:p></o:p></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:rect id="_x0000_s1030" style='position:absolute;
left:0;text-align:left;margin-left:68.55pt;margin-top:.25pt;width:234pt;
height:36pt;z-index:5' filled="f" strokecolor="red" strokeweight="2pt" /><![endif]--><!--[if !vml]--><span style="position: relative; z-index: 4;"><span style="position: absolute; left: 90px; top: -1px; width: 315px; height: 51px;"><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_image004.gif" v:shapes="_x0000_s1030" width="315" height="51"  alt="" /></span></span><!--[endif]--><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>public void encodeBegin(FacesContext
context)<o:p></o:p></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:shape id="_x0000_s1031" type="#_x0000_t202" style='position:absolute;left:0;text-align:left;margin-left:311.55pt;
margin-top:.25pt;width:3in;height:45pt;z-index:6' /><![endif]--><!--[if !vml]--><span style="position: absolute; z-index: 5; left: 0px; margin-left: 415px; margin-top: 0px; width: 291px; height: 63px;">
<table cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="background: white none repeat scroll 0% 0%; vertical-align: top; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top" width="291" align="left" bgcolor="white" height="63"><!--[endif]--><!--[if !mso]--><span style="position: absolute; left: 0pt; z-index: 6;">
            <table width="100%" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td><!--[endif]-->
                        <div v:shape="_x0000_s1031" style="padding: 3.6pt 7.2pt;" class="shape">
                        <p class="MsoNormal"><span style="font-family: SimSun; color: red;" lang="ZH-CN">实现前台表现层的编码。可以编写成</span><span style="color: red;" lang="EN-US">HTML</span><span style="font-family: SimSun; color: red;" lang="ZH-CN">或者其他表现层语言。</span><span style="color: red;" lang="EN-US"><o:p></o:p></span></p>
                        </div>
                        <!--[if !mso]--></td>
                    </tr>
                </tbody>
            </table>
            </span><!--[endif]--><!--[if !mso & !vml]-->&nbsp;<!--[endif]--><!--[if !vml]--></td>
        </tr>
    </tbody>
</table>
</span><!--[endif]--><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>throws
IOException {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ResponseWriter writer =
context.getResponseWriter();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String clientId =
getClientId(context);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>encodeTextField(writer, clientId);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>encodeCommand(writer, clientId);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>private void
encodeTextField(ResponseWriter writer,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span>String clientId) throws IOException {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>writer.startElement("input",
this);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>writer.writeAttribute("name", clientId + TEXT, null);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//getValue()</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">继承于</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">UIInput<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Object value = getValue();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if(value != null) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>writer.writeAttribute("value",<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>value.toString(), null);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String size = (String)
getAttributes().get("size");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if(size != null) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>writer.writeAttribute("size", size, null);<span>&nbsp; </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>writer.endElement("input");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>private void encodeCommand(ResponseWriter
writer,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String clientId)
throws IOException {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>writer.startElement("input",
this);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>writer.writeAttribute("type", "submit", null);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>writer.writeAttribute("name", clientId + CMD, null);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>writer.writeAttribute("value", "submit", null);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>writer.endElement("input");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:shape id="_x0000_s1033" type="#_x0000_t202" style='position:absolute;left:0;text-align:left;margin-left:320.55pt;
margin-top:9.25pt;width:189pt;height:45pt;z-index:8' /><![endif]--><!--[if !vml]--><span style="position: absolute; z-index: 7; left: 0px; margin-left: 427px; margin-top: 12px; width: 255px; height: 63px;">
<table cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="background: white none repeat scroll 0% 0%; vertical-align: top; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top" width="255" align="left" bgcolor="white" height="63"><!--[endif]--><!--[if !mso]--><span style="position: absolute; left: 0pt; z-index: 8;">
            <table width="100%" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td><!--[endif]-->
                        <div v:shape="_x0000_s1033" style="padding: 3.6pt 7.2pt;" class="shape">
                        <p class="MsoNormal"><span style="font-family: SimSun; color: red;" lang="ZH-CN">实现标签输入值的解码。取得标签的输入值绑定到响应的</span><span style="color: red;" lang="EN-US">Bean</span><span style="font-family: SimSun; color: red;" lang="ZH-CN">。</span><span style="color: red;" lang="EN-US"><o:p></o:p></span></p>
                        </div>
                        <!--[if !mso]--></td>
                    </tr>
                </tbody>
            </table>
            </span><!--[endif]--><!--[if !mso & !vml]-->&nbsp;<!--[endif]--><!--[if !vml]--></td>
        </tr>
    </tbody>
</table>
</span><!--[endif]--><!--[if gte vml 1]><v:rect id="_x0000_s1032" style='position:absolute;
left:0;text-align:left;margin-left:14.55pt;margin-top:.25pt;width:279pt;
height:36pt;z-index:7' filled="f" strokecolor="red" strokeweight="2pt" /><![endif]--><!--[if !vml]--><span style="position: relative; z-index: 6;"><span style="position: absolute; left: 18px; top: -1px; width: 375px; height: 51px;"><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_image005.gif" v:shapes="_x0000_s1032" width="375" height="51"  alt="" /></span></span><!--[endif]--><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>// ..........</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">解码，取得标签的输入值</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">...................................<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>public void decode(FacesContext context) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Map reqParaMap =
context.getExternalContext().<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>getRequestParameterMap();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String clientId = getClientId(context);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String submittedValue =<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(String)
reqParaMap.get(clientId + TEXT);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>setSubmittedValue(submittedValue);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>setValid(true);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">在配置文件</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">faces-config.xml</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">中声明自定义组件。</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;!-- 自定义组件 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;component&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;component-type&gt;test.TextWithCmd&lt;/component-type&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;
</span>&lt;component-class&gt;test.UITextWithCmd&lt;/component-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;/component&gt;</span></span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">这样，自定义的</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">UIComponent</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">组件就完成了。</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></p>
<img src ="http://www.blogjava.net/ocean07000814/aggbug/252054.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:50 <a href="http://www.blogjava.net/ocean07000814/articles/252054.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>九 UIComponent介绍</title><link>http://www.blogjava.net/ocean07000814/articles/252053.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252053.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252053.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252053.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252053.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 9" />
<meta name="Originator" content="Microsoft Word 9" />
<link rel="File-List" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:宋体;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-alt:"MS Gothic";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:1;
font-size:24.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h2
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:2;
font-size:18.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h3
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:3;
font-size:14.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h4
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
h5
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h6
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:6;
font-size:8.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:1.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:2.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:3.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:5.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:6.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:7.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"索引 1";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ ゴシック";
mso-fareast-font-family:SimSun;
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;
mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
{color:#000099;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:#339966;
text-decoration:underline;
text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
background:navy;
font-size:10.5pt;
font-family:Arial;
mso-fareast-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p
{margin-right:0mm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0mm;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;}
pre
{margin:0mm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
font-size:10.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Courier New";
color:windowtext;}
span.code-keyword
{mso-style-name:code-keyword;}
span.code-object
{mso-style-name:code-object;}
span.hilite1
{mso-style-name:hilite1;}
span.hilite2
{mso-style-name:hilite2;}
span.wenzhangcon
{mso-style-name:wenzhang_con;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:99.25pt 30.0mm 30.0mm 30.0mm;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:192348167;
mso-list-type:hybrid;
mso-list-template-ids:-704846568 -618902396 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
mso-ansi-font-size:11.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"ＭＳ 明朝";}
@list l1
{mso-list-id:231738792;
mso-list-type:hybrid;
mso-list-template-ids:157436104 830738612 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l1:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-ansi-font-weight:normal;}
@list l2
{mso-list-id:535385560;
mso-list-type:hybrid;
mso-list-template-ids:1595598884 -360808338 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l2:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:538667892;
mso-list-type:hybrid;
mso-list-template-ids:333587862 -1594848292 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l3:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";}
@list l4
{mso-list-id:655108335;
mso-list-type:hybrid;
mso-list-template-ids:1941334218 -1229129530 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l4:level1
{mso-level-tab-stop:29.05pt;
mso-level-number-position:left;
margin-left:29.05pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:666832420;
mso-list-type:hybrid;
mso-list-template-ids:1385218472 1513126010 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l5:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:SimSun;
mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
@list l6
{mso-list-id:703020059;
mso-list-type:hybrid;
mso-list-template-ids:-1615819334 448289824 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l6:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l7
{mso-list-id:1930306018;
mso-list-type:hybrid;
mso-list-template-ids:-689127960 -806612280 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l7:level1
{mso-level-text:%1．;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l8
{mso-list-id:2087264629;
mso-list-type:hybrid;
mso-list-template-ids:497178426 -145033720 -1520680842 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l8:level1
{mso-level-tab-stop:19.5pt;
mso-level-number-position:left;
margin-left:19.5pt;
text-indent:-19.5pt;
font-family:SimSun;
mso-ascii-font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-ansi-font-weight:bold;}
@list l8:level2
{mso-level-tab-stop:39.0pt;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l9
{mso-list-id:2125735041;
mso-list-type:hybrid;
mso-list-template-ids:705081986 -1428633308 458388728 -638169918 351016214 1587436938 45270452 902581502 227823400 1010046992;}
@list l9:level1
{mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
-->
</style>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">中的组件树概念尤其重要。组件树大量使用了组合设计模式，为开发者提供了大量的包括日历，表格，树，列表等标准</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Web</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">组件。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">同时</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">还提供了大量的组件支持类，例如转换器（可以进行类型转换），验证器（进行数据验证），绘制器（不仅仅可以使用</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">HTML</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">来绘制组件）。接下来我们分析一下用户界面组件。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><br />
<br />
</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">所有组件都要实现</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">javax.faces.component.UIComponent</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">接口。这个接口定义了浏览组件树，和支持</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Bean</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">交互，管理组件（包括数据验证，数据转换和组件绘制）等任务和方法。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">提供了一个组件基类：</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">javax.faces.component.UICompoentBase</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">。它实现了一些基本的默认的组件方法，给开发人员提供了方便，一般来说，你只需要重写特定的方法即可。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">使用了适配器模式帮助你使用最少的代码完成大部分工作。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><br />
<br />
</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">如果你想创建组件，那么有三条路可以走：</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">直接实现<span lang="EN-US">UIComponent接口<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">继承<span lang="EN-US">UIComponentBase类<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">继承已经存在的<span lang="EN-US">UIComponent实现<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">已经存在的<span lang="EN-US">UIComponent组件类主要有如下：</span></span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UIForm 表示一个输入表单<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UICommand 表示一个可在激活时执行一个动作的命令组件<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UIOutput 表示一个可显示值的组件<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span>UIGraphic 表示一个可显示图像的组件<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UIInput 表示一个可获取和显示用户输入的组件<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UIParameter 用于为父组件配置参数值<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UIPanel 表示一个面板(容器)组件<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UISelectItem 表示选择组件中的一个选择项<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UISelectItems表示选择组件中的多个选择项<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UISelectBoolean表示一个具有boolean值的组件<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UISelectOne 表示一个允许用户在一系列值中选择零个或一个值的组件<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">●<span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UISelectMany表示一个允许用户在一系列值中选择零个或多个值的组件<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;">事实上，一个<span lang="EN-US">JSF组件包括了三个部份：Tag、Component
与Renderer。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Tag</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">就是之前使用的标签，它的目的在于设定</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">属性，设定验证器，设定方法绑定等。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">请求时，每个</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">会根据自己的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">ID</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">值，从请求中取得相应的值，绑定到</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Bean</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">。当请求来到应用程序时，需要通过解码（</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">decode</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">）来</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">将</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">HTTP</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">中的内容转变成</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">组件需要的值，相对的，当</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">组件将值转变成</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">HTTP</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">字串资料送到客户端，供客户端显示，就称为编码（</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">encode</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">）。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">可以自己实现编码，解码，也可以委托</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">来实现。</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">是一个可替换的组件，</span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">可以搭配不通的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">，而不用自定义编码，解码工作，这样</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Component</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">可以达到重用。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">你也可以编写自己的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Renderer</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">，如果你对前台的显示有自己独特的要求的话。甚至可以让你的系统在移动设备等不同的平台上应用。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">javax.faces.component.UIComponent<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">自订<span lang="EN-US">Component所要继承的父类别，但通常，您是继承其子类别，例如UIInput、UIOutput等等。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">javax.faces.webapp.UIComponentTag<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">自订</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">标签所要继承的父类别，继承它可以帮您省去许多</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">标签处理的细节。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">javax.faces.context.FacesContext
<br />
包括了JSF相关的请求资讯，您可以透过它取得请求物件或请求参数，或者是。<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">javax.faces.application.Application物件</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">包括了一个应用程式所共享的资讯，像是</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">locale</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">、验证器、转换器等等，您可以透过一些 工厂方法 取得相关的资讯。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<img src ="http://www.blogjava.net/ocean07000814/aggbug/252053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:49 <a href="http://www.blogjava.net/ocean07000814/articles/252053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>八 JSF事件处理</title><link>http://www.blogjava.net/ocean07000814/articles/252052.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252052.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252052.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252052.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252052.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252052.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}Normal002...&nbsp;&nbsp;<a href='http://www.blogjava.net/ocean07000814/articles/252052.html'>阅读全文</a><img src ="http://www.blogjava.net/ocean07000814/aggbug/252052.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:49 <a href="http://www.blogjava.net/ocean07000814/articles/252052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>七 JSFMessage信息</title><link>http://www.blogjava.net/ocean07000814/articles/252051.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:48:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252051.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252051.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252051.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252051.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252051.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 9" />
<meta name="Originator" content="Microsoft Word 9" />
<link rel="File-List" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:宋体;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-alt:"MS Gothic";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:1;
font-size:24.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h2
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:2;
font-size:18.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h3
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:3;
font-size:14.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h4
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
h5
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h6
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:6;
font-size:8.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:1.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:2.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:3.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:5.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:6.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:7.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"索引 1";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ ゴシック";
mso-fareast-font-family:SimSun;
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;
mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
{color:#000099;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:#339966;
text-decoration:underline;
text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
background:navy;
font-size:10.5pt;
font-family:Arial;
mso-fareast-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p
{margin-right:0mm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0mm;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;}
pre
{margin:0mm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
font-size:10.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Courier New";
color:windowtext;}
span.code-keyword
{mso-style-name:code-keyword;}
span.code-object
{mso-style-name:code-object;}
span.hilite1
{mso-style-name:hilite1;}
span.hilite2
{mso-style-name:hilite2;}
span.wenzhangcon
{mso-style-name:wenzhang_con;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:99.25pt 30.0mm 30.0mm 30.0mm;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:192348167;
mso-list-type:hybrid;
mso-list-template-ids:-704846568 -618902396 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
mso-ansi-font-size:11.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"ＭＳ 明朝";}
@list l1
{mso-list-id:231738792;
mso-list-type:hybrid;
mso-list-template-ids:157436104 830738612 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l1:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-ansi-font-weight:normal;}
@list l2
{mso-list-id:535385560;
mso-list-type:hybrid;
mso-list-template-ids:1595598884 -360808338 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l2:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:538667892;
mso-list-type:hybrid;
mso-list-template-ids:333587862 -1594848292 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l3:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";}
@list l4
{mso-list-id:655108335;
mso-list-type:hybrid;
mso-list-template-ids:1941334218 -1229129530 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l4:level1
{mso-level-tab-stop:29.05pt;
mso-level-number-position:left;
margin-left:29.05pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:666832420;
mso-list-type:hybrid;
mso-list-template-ids:1385218472 1513126010 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l5:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:SimSun;
mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
@list l6
{mso-list-id:703020059;
mso-list-type:hybrid;
mso-list-template-ids:-1615819334 448289824 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l6:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l7
{mso-list-id:1930306018;
mso-list-type:hybrid;
mso-list-template-ids:-689127960 -806612280 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l7:level1
{mso-level-text:%1．;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l8
{mso-list-id:2087264629;
mso-list-type:hybrid;
mso-list-template-ids:497178426 -145033720 -1520680842 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l8:level1
{mso-level-tab-stop:19.5pt;
mso-level-number-position:left;
margin-left:19.5pt;
text-indent:-19.5pt;
font-family:SimSun;
mso-ascii-font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-ansi-font-weight:bold;}
@list l8:level2
{mso-level-tab-stop:39.0pt;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l9
{mso-list-id:2125735041;
mso-list-type:hybrid;
mso-list-template-ids:705081986 -1428633308 458388728 -638169918 351016214 1587436938 45270452 902581502 227823400 1010046992;}
@list l9:level1
{mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
-->
</style>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">带参数的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Message</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">信息设定：</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">tag</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">部分介绍了带参数的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Message</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">在前台的设定，现在来看看后台的参数设定。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">....<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>String message = rsBundle.getString(<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>"</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">test</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">.message2");<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>Object[] params = {"param1", "param2"};<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>message = java.text.MessageFormat.format(message, params);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>FacesMessage facesMessage = new FacesMessage(<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>FacesMessage.SEVERITY_FATAL, message, message);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">....</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">FacesMessage建构时所使用的三个参数是严重程度、概述讯息与详述讯息，严重程度有SEVERITY_FATAL、SEVERITY_ERROR、SEVERITY_WARN与SEVERITY_INFO四种。</span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Message</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">信息的表示可以在页面上用标签</span></span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;h:messages&gt;</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">，也可以直接转移到特定的</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">error</span><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">画面，前面的例子已经说明了这一点。</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">我们可以在<span lang="EN-US">faces-config.xml配置文件中设置&lt;navigation-rule&gt;</span></span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">中设置每个画面的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Error</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">跳转，也可以设置类似拦截器的东西，将同一类型的错误统一转至</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Error</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">画面。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Error</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">拦截器可以根据<span lang="EN-US">exception-type或者error-code</span></span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">来分辨。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">如下：</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">error-page</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">exception-type</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">javax.faces.FacesException</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">exception-type</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">location</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">/pages</span></span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">/</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">test.jsp</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">location</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">error-page</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">或者</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">error-page</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">error-code</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">500</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">error-code</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">location</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">/pages</span></span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">/</span><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">test.jsp</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">location</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: windowtext;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&lt;/</span><span style="font-size: 11pt; font-family: SimSun; color: #3f7f7f;" lang="EN-US">error-page</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US">&gt;</span><span style="font-size: 11pt; font-family: SimSun; color: teal;" lang="EN-US"><o:p></o:p></span></p>
<span class="code-object"><span style="font-size: 11pt; font-family: SimSun; color: black;" lang="ZH-CN">添加到</span><span style="font-size: 11pt; font-family: SimSun; color: black;" lang="EN-US">Web.xml</span><span style="font-size: 11pt; font-family: SimSun; color: black;" lang="ZH-CN">中去就可以了。</span></span>
<img src ="http://www.blogjava.net/ocean07000814/aggbug/252051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:48 <a href="http://www.blogjava.net/ocean07000814/articles/252051.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>六 JSF自定义转换验证标签</title><link>http://www.blogjava.net/ocean07000814/articles/252050.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:48:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252050.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252050.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252050.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252050.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}Normal002...&nbsp;&nbsp;<a href='http://www.blogjava.net/ocean07000814/articles/252050.html'>阅读全文</a><img src ="http://www.blogjava.net/ocean07000814/aggbug/252050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:48 <a href="http://www.blogjava.net/ocean07000814/articles/252050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>五 JSF验证器</title><link>http://www.blogjava.net/ocean07000814/articles/252049.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:48:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252049.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252049.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252049.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252049.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 9" />
<meta name="Originator" content="Microsoft Word 9" />
<link rel="File-List" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_editdata.mso" /><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:宋体;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-alt:"MS Gothic";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:1;
font-size:24.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h2
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:2;
font-size:18.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h3
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:3;
font-size:14.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h4
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
h5
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h6
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:6;
font-size:8.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:1.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:2.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:3.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:5.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:6.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:7.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"索引 1";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ ゴシック";
mso-fareast-font-family:SimSun;
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;
mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
{color:#000099;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:#339966;
text-decoration:underline;
text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
background:navy;
font-size:10.5pt;
font-family:Arial;
mso-fareast-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p
{margin-right:0mm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0mm;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;}
pre
{margin:0mm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
font-size:10.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Courier New";
color:windowtext;}
span.code-keyword
{mso-style-name:code-keyword;}
span.code-object
{mso-style-name:code-object;}
span.hilite1
{mso-style-name:hilite1;}
span.hilite2
{mso-style-name:hilite2;}
span.wenzhangcon
{mso-style-name:wenzhang_con;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:99.25pt 30.0mm 30.0mm 30.0mm;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:192348167;
mso-list-type:hybrid;
mso-list-template-ids:-704846568 -618902396 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
mso-ansi-font-size:11.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"ＭＳ 明朝";}
@list l1
{mso-list-id:231738792;
mso-list-type:hybrid;
mso-list-template-ids:157436104 830738612 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l1:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-ansi-font-weight:normal;}
@list l2
{mso-list-id:535385560;
mso-list-type:hybrid;
mso-list-template-ids:1595598884 -360808338 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l2:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:538667892;
mso-list-type:hybrid;
mso-list-template-ids:333587862 -1594848292 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l3:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";}
@list l4
{mso-list-id:655108335;
mso-list-type:hybrid;
mso-list-template-ids:1941334218 -1229129530 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l4:level1
{mso-level-tab-stop:29.05pt;
mso-level-number-position:left;
margin-left:29.05pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:666832420;
mso-list-type:hybrid;
mso-list-template-ids:1385218472 1513126010 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l5:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:SimSun;
mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
@list l6
{mso-list-id:703020059;
mso-list-type:hybrid;
mso-list-template-ids:-1615819334 448289824 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l6:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l7
{mso-list-id:1930306018;
mso-list-type:hybrid;
mso-list-template-ids:-689127960 -806612280 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l7:level1
{mso-level-text:%1．;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l8
{mso-list-id:2087264629;
mso-list-type:hybrid;
mso-list-template-ids:497178426 -145033720 -1520680842 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l8:level1
{mso-level-tab-stop:19.5pt;
mso-level-number-position:left;
margin-left:19.5pt;
text-indent:-19.5pt;
font-family:SimSun;
mso-ascii-font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-ansi-font-weight:bold;}
@list l8:level2
{mso-level-tab-stop:39.0pt;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l9
{mso-list-id:2125735041;
mso-list-type:hybrid;
mso-list-template-ids:705081986 -1428633308 458388728 -638169918 351016214 1587436938 45270452 902581502 227823400 1010046992;}
@list l9:level1
{mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
-->
</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1028" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">前面我们举的例子，用户需要输入用户名和密码提交验证。那么你输入的密码如果有长度限制，或者只能输入数字的话，</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">你可能会在用户验证之前进行检查，这样做也可以。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">但是我个人的理解，唤起应用程序和执行验证相比，更靠后，程序效率会变低。而且程序的层次不清楚，验证和逻辑混合，不易维护。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">所以我们可以自定义验证器来解决。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">自定义验证器要</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">实现<span lang="EN-US">javax.faces.validator.Validator的validate()方法<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">验证出错时<span lang="EN-US">ValidatorException，接受参数FacesMessage，可以在前台用标签&lt;h:messages&gt;显示。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">我们先写个验证器：</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">package
test;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.application.FacesMessage;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.component.UIComponent;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.context.FacesContext;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.validator.Validator;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">import
javax.faces.validator.ValidatorException;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">//</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">自定义验证器</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">public
class PasswordValidator implements Validator {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>public void validate(FacesContext context,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UIComponent component,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Object obj)<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>throws ValidatorException {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>String password = (String) obj;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if(password.length() &lt; 6) {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>FacesMessage message = new
FacesMessage(<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp; </span>FacesMessage.SEVERITY_ERROR,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp; </span>"</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">字元长度小于</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">6",<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp; </span>"</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">字元长度不得小于</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">6");<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>throw new
ValidatorException(message);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if(!password.matches(".+[0-9]+"))
{<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>FacesMessage message = new
FacesMessage(<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>FacesMessage.SEVERITY_ERROR,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>"</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">密码必须包括字元与数字</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">",<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>"</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">密码必须是字元加数字所组成</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">");<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>throw new ValidatorException(message);<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">新建一个</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">jsp</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">文件，其实和上面例子用的</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">jsp</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">差不多，只是加入了密码验证。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@taglib
uri="http://java.sun.com/jsf/core" prefix="f"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@taglib
uri="http://java.sun.com/jsf/html" prefix="h"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@page
contentType="text/html;charset=utf-8"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;html&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;head&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;title&gt;JSF 自定义验证器&lt;/title&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/head&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;body&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;f:view&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h:form&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;h3&gt;</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">请输入您的名称</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/h3&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;h:message </span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun; color: blue;" lang="EN-US">for="dateField"</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">
style="color:red" /&gt;&lt;p&gt;</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h:outputText value="#{user.errMessage}"
style="color:red"/&gt;&lt;p&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;!-- 姓名 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>名称:&lt;h:inputText value="#{user.name}" /&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;p&gt;密码:&lt;h:inputSecret</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"> </span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun; color: blue;" lang="EN-US">id=</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun; color: blue;" lang="EN-US">"</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun; color: blue;" lang="EN-US">dateField</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun; color: blue;" lang="EN-US">"</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"> value="#{user.password}"&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m0,0l0,21600,21600,21600,21600,0xe">
<v:stroke joinstyle="miter" />
<v:path gradientshapeok="t" o:connecttype="rect" />
</v:shapetype><v:shape id="_x0000_s1027" type="#_x0000_t202" style='position:absolute;
left:0;text-align:left;margin-left:401.55pt;margin-top:.25pt;width:117pt;
height:27pt;z-index:2' /><![endif]--><!--[if !vml]--><span style="position: absolute; z-index: 1; left: 0px; margin-left: 535px; margin-top: 0px; width: 159px; height: 39px;">
<table cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="background: white none repeat scroll 0% 0%; vertical-align: top; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top" width="159" align="left" bgcolor="white" height="39"><!--[endif]--><!--[if !mso]--><span style="position: absolute; left: 0pt; z-index: 2;">
            <table width="100%" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td><!--[endif]-->
                        <div v:shape="_x0000_s1027" style="padding: 3.6pt 7.2pt;" class="shape">
                        <p class="MsoNormal"><span style="font-family: SimSun; color: red;" lang="ZH-CN">加入了密码的验证器。</span><span style="color: red;" lang="EN-US"><o:p></o:p></span></p>
                        </div>
                        <!--[if !mso]--></td>
                    </tr>
                </tbody>
            </table>
            </span><!--[endif]--><!--[if !mso & !vml]-->&nbsp;<!--[endif]--><!--[if !vml]--></td>
        </tr>
    </tbody>
</table>
</span><!--[endif]--><!--[if gte vml 1]><v:oval id="_x0000_s1026" style='position:absolute;
left:0;text-align:left;margin-left:140.55pt;margin-top:.25pt;width:252pt;
height:27pt;z-index:1' filled="f" strokecolor="red" strokeweight="2pt" /><![endif]--><!--[if !vml]--><span style="position: relative; z-index: 0;"><span style="position: absolute; left: 186px; top: -1px; width: 339px; height: 39px;"><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/12/clip_image001.gif" v:shapes="_x0000_s1026" width="339" height="39"  alt="" /></span></span><!--[endif]--><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;f:validator
validatorId="test.Password"/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/h:inputSecret&gt;&lt;p&gt;</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;p&gt;&lt;h:commandButton value="送出"
action="#{user.verify}" /&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/h:form&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/f:view&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/body&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/html&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">上面红色部分就是加入的密码验证器，按照</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">jsf</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">的生命周期，它是在唤起应用程序之前执行的。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">faces-config.xmle中配置验证器<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;!-- 验证器 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;validator&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;validator-id&gt;test.Password&lt;/validator-id&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>&lt;validator-class&gt;test.PasswordValidator&lt;/validator-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;/validator&gt;</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Tomcat</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">启动后，</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><a href="http://localhost:8080/jsfTest/pages/jsfMyValidator.faces">http://localhost:8080/jsfTest/pages/jsfMyValidator.faces</a>
</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">就可以运行了。当密码输入小于</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">6</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">或者有字母的时候，就会出错。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<span class="code-object"><span style="font-size: 11pt; font-family: SimSun; color: black;" lang="ZH-CN">具体程序参看示例程序。</span></span>
<img src ="http://www.blogjava.net/ocean07000814/aggbug/252049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:48 <a href="http://www.blogjava.net/ocean07000814/articles/252049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>四 JSF转换器</title><link>http://www.blogjava.net/ocean07000814/articles/252048.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252048.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252048.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252048.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252048.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252048.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}Normal002...&nbsp;&nbsp;<a href='http://www.blogjava.net/ocean07000814/articles/252048.html'>阅读全文</a><img src ="http://www.blogjava.net/ocean07000814/aggbug/252048.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:47 <a href="http://www.blogjava.net/ocean07000814/articles/252048.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>三 JSF国际编码支持</title><link>http://www.blogjava.net/ocean07000814/articles/252047.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252047.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252047.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252047.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252047.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252047.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 9" />
<meta name="Originator" content="Microsoft Word 9" />
<link rel="File-List" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/11/clip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/11/clip_editdata.mso" /><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:宋体;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-alt:"MS Gothic";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:1;
font-size:24.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h2
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:2;
font-size:18.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h3
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:3;
font-size:14.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h4
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
h5
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h6
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:6;
font-size:8.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:1.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:2.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:3.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:5.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:6.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:7.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"索引 1";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ ゴシック";
mso-fareast-font-family:SimSun;
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;
mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
{color:#000099;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:#339966;
text-decoration:underline;
text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
background:navy;
font-size:10.5pt;
font-family:Arial;
mso-fareast-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p
{margin-right:0mm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0mm;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;}
pre
{margin:0mm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
font-size:10.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Courier New";
color:windowtext;}
span.code-keyword
{mso-style-name:code-keyword;}
span.code-object
{mso-style-name:code-object;}
span.hilite1
{mso-style-name:hilite1;}
span.hilite2
{mso-style-name:hilite2;}
span.wenzhangcon
{mso-style-name:wenzhang_con;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:99.25pt 30.0mm 30.0mm 30.0mm;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:192348167;
mso-list-type:hybrid;
mso-list-template-ids:-704846568 -618902396 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
mso-ansi-font-size:11.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"ＭＳ 明朝";}
@list l1
{mso-list-id:231738792;
mso-list-type:hybrid;
mso-list-template-ids:157436104 830738612 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l1:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-ansi-font-weight:normal;}
@list l2
{mso-list-id:535385560;
mso-list-type:hybrid;
mso-list-template-ids:1595598884 -360808338 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l2:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:538667892;
mso-list-type:hybrid;
mso-list-template-ids:333587862 -1594848292 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l3:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";}
@list l4
{mso-list-id:655108335;
mso-list-type:hybrid;
mso-list-template-ids:1941334218 -1229129530 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l4:level1
{mso-level-tab-stop:29.05pt;
mso-level-number-position:left;
margin-left:29.05pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:666832420;
mso-list-type:hybrid;
mso-list-template-ids:1385218472 1513126010 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l5:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:SimSun;
mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
@list l6
{mso-list-id:703020059;
mso-list-type:hybrid;
mso-list-template-ids:-1615819334 448289824 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l6:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l7
{mso-list-id:1930306018;
mso-list-type:hybrid;
mso-list-template-ids:-689127960 -806612280 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l7:level1
{mso-level-text:%1．;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l8
{mso-list-id:2087264629;
mso-list-type:hybrid;
mso-list-template-ids:497178426 -145033720 -1520680842 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l8:level1
{mso-level-tab-stop:19.5pt;
mso-level-number-position:left;
margin-left:19.5pt;
text-indent:-19.5pt;
font-family:SimSun;
mso-ascii-font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-ansi-font-weight:bold;}
@list l8:level2
{mso-level-tab-stop:39.0pt;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l9
{mso-list-id:2125735041;
mso-list-type:hybrid;
mso-list-template-ids:705081986 -1428633308 458388728 -638169918 351016214 1587436938 45270452 902581502 227823400 1010046992;}
@list l9:level1
{mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
-->
</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1028" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF国际化（Internnationalization）讯息处理是基于Java对国际化的支援，您可以在一个讯息资源档中统一管理讯息资源，messages_en.properties<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">例如：<span lang="EN-US"><o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">nameText=name<br />
passText=password<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">同时，你也可以定义对应于中文的统一管理讯息资源，<span lang="EN-US">messages_zh_TW.properties<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">例如：<span lang="EN-US"><o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">nameText=\u540d\u7a31<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">passText=\u5bc6\u78bc<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">资源中的文字需要进行<span lang="EN-US">Unicode重新编码，可以用jdk自带的native2ascii工具实现。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JsfInternMessage.jsp<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@taglib
uri="http://java.sun.com/jsf/core" prefix="f"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@taglib
uri="http://java.sun.com/jsf/html" prefix="h"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@page
contentType="text/html;charset=utf-8"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;f:view
locale="#{user.locale}"&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;f:loadBundle basename="messages" var="msgs"
/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;html&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;head&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;title&gt;&lt;h:outputText
value="#{msgs.titleText}" /&gt;&lt;/title&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/head&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;body&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h:form&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;!—请输入你的姓名 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h3&gt;&lt;h:outputText
value="#{msgs.hintText}" /&gt;&lt;/h3&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;!-- 姓名 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h:outputText value="#{msgs.nameText}"
/&gt;:<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;h:inputText
value="#{user.name}" /&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;p&gt;&lt;!-- 送出 --&gt;&lt;h:commandButton
id="button1"<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>value="#{msgs.commandText}"
action="success" /&gt; &lt;!-- 调用不同的资源文件，改变页面的表示语言 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h:commandButton value="#{msgs.Text}"<o:p></o:p></span></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:oval id="_x0000_s1026" style='position:absolute;
left:0;text-align:left;margin-left:221.4pt;margin-top:.25pt;width:135pt;
height:27pt;z-index:1' filled="f" strokecolor="red" strokeweight="2pt" /><![endif]--><!--[if !vml]--><span style="position: relative; z-index: 0;"><span style="position: absolute; left: 294px; top: -1px; width: 183px; height: 39px;"><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/11/clip_image001.gif" v:shapes="_x0000_s1026" width="183" height="39"  alt="" /></span></span><!--[endif]--><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>actionListener="#{user.changeLocale}"
/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m0,0l0,21600,21600,21600,21600,0xe">
<v:stroke joinstyle="miter" />
<v:path gradientshapeok="t" o:connecttype="rect" />
</v:shapetype><v:shape id="_x0000_s1027" type="#_x0000_t202" style='position:absolute;
left:0;text-align:left;margin-left:356.55pt;margin-top:9.25pt;width:297pt;
height:45pt;z-index:2'>
<v:textbox style='mso-next-textbox:#_x0000_s1027' />
</v:shape><![endif]--><!--[if !vml]--><span style="position: absolute; z-index: 1; left: 0px; margin-left: 475px; margin-top: 12px; width: 399px; height: 63px;">
<table cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="background: white none repeat scroll 0% 0%; vertical-align: top; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top" width="399" align="left" bgcolor="white" height="63"><!--[endif]--><!--[if !mso]--><span style="position: absolute; left: 0pt; z-index: 2;">
            <table width="100%" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td><!--[endif]-->
                        <div v:shape="_x0000_s1027" style="padding: 3.6pt 7.2pt;" class="shape">
                        <p class="MsoNormal"><span style="font-family: SimSun; color: red;" lang="ZH-CN">触发</span><span style="color: red;" lang="EN-US">user</span><span style="font-family: SimSun; color: red;" lang="ZH-CN">里的方法，返回不同的值，从而达到调用不同资源文件的目的。</span><span style="color: red;" lang="EN-US"><o:p></o:p></span></p>
                        <p class="MsoNormal"><span lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></p>
                        </div>
                        <!--[if !mso]--></td>
                    </tr>
                </tbody>
            </table>
            </span><!--[endif]--><!--[if !mso & !vml]-->&nbsp;<!--[endif]--><!--[if !vml]--></td>
        </tr>
    </tbody>
</table>
</span><!--[endif]--><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/h:form&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/body&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/html&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/f:view&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">UserBean.java<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&#8230;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">public void
changeLocale(ActionEvent e) {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp; </span>if(locale.equals("en"))<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp; </span>locale =
"zh_TW";<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp; </span>else<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp; </span>locale =
"en";<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&#8230;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">具体代码参看示例程序<span lang="EN-US">.(JsfInternMessage.jsp,UserBean.java,messages_en.properties,messages_zh_TW.properties)<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">注意：<span lang="EN-US">JSP页面头部要用下面的标签包住。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;f:view
locale="#{user.locale}"&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;f:loadBundle
basename="messages" var="msgs"/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">上面标签的意思是，本<span lang="EN-US">JSP调用messages_"#{user.locale}".properties资源文件，如果user.locale=en，则调用messages_en.properties文件。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><a href="http://localhost:8080/jsfDemo/pages/index.faces"><span style="color: black; text-decoration: none;">http://localhost:8080/jsfTest/pages/jsfInternMessage.faces</span></a>
就可以正常执行了。<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<img src ="http://www.blogjava.net/ocean07000814/aggbug/252047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:47 <a href="http://www.blogjava.net/ocean07000814/articles/252047.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>二 JSF JavaBean</title><link>http://www.blogjava.net/ocean07000814/articles/252046.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:46:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252046.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252046.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252046.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252046.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252046.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 9" />
<meta name="Originator" content="Microsoft Word 9" />
<link rel="File-List" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/09/clip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/09/clip_editdata.mso" /><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:宋体;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-alt:"MS Gothic";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:1;
font-size:24.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h2
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:2;
font-size:18.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h3
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:3;
font-size:14.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h4
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
h5
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h6
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:6;
font-size:8.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:1.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:2.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:3.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:5.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:6.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:7.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"索引 1";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ ゴシック";
mso-fareast-font-family:SimSun;
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;
mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
{color:#000099;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:#339966;
text-decoration:underline;
text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
background:navy;
font-size:10.5pt;
font-family:Arial;
mso-fareast-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p
{margin-right:0mm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0mm;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;}
pre
{margin:0mm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
font-size:10.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Courier New";
color:windowtext;}
span.code-keyword
{mso-style-name:code-keyword;}
span.code-object
{mso-style-name:code-object;}
span.hilite1
{mso-style-name:hilite1;}
span.hilite2
{mso-style-name:hilite2;}
span.wenzhangcon
{mso-style-name:wenzhang_con;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:99.25pt 30.0mm 30.0mm 30.0mm;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:192348167;
mso-list-type:hybrid;
mso-list-template-ids:-704846568 -618902396 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
mso-ansi-font-size:11.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"ＭＳ 明朝";}
@list l1
{mso-list-id:231738792;
mso-list-type:hybrid;
mso-list-template-ids:157436104 830738612 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l1:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-ansi-font-weight:normal;}
@list l2
{mso-list-id:535385560;
mso-list-type:hybrid;
mso-list-template-ids:1595598884 -360808338 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l2:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:538667892;
mso-list-type:hybrid;
mso-list-template-ids:333587862 -1594848292 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l3:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";}
@list l4
{mso-list-id:655108335;
mso-list-type:hybrid;
mso-list-template-ids:1941334218 -1229129530 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l4:level1
{mso-level-tab-stop:29.05pt;
mso-level-number-position:left;
margin-left:29.05pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:666832420;
mso-list-type:hybrid;
mso-list-template-ids:1385218472 1513126010 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l5:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:SimSun;
mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
@list l6
{mso-list-id:703020059;
mso-list-type:hybrid;
mso-list-template-ids:-1615819334 448289824 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l6:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l7
{mso-list-id:1930306018;
mso-list-type:hybrid;
mso-list-template-ids:-689127960 -806612280 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l7:level1
{mso-level-text:%1．;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l8
{mso-list-id:2087264629;
mso-list-type:hybrid;
mso-list-template-ids:497178426 -145033720 -1520680842 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l8:level1
{mso-level-tab-stop:19.5pt;
mso-level-number-position:left;
margin-left:19.5pt;
text-indent:-19.5pt;
font-family:SimSun;
mso-ascii-font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-ansi-font-weight:bold;}
@list l8:level2
{mso-level-tab-stop:39.0pt;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l9
{mso-list-id:2125735041;
mso-list-type:hybrid;
mso-list-template-ids:705081986 -1428633308 458388728 -638169918 351016214 1587436938 45270452 902581502 227823400 1010046992;}
@list l9:level1
{mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
-->
</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1027" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<p class="MsoNormal"><a name="JavaBean介绍"><span class="code-object"><strong><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">1.JSF
JavaBean介绍</span></strong></span></a><span class="code-object"><strong><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></strong></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF使用 JavaBean 来达到程式逻辑与视图分离的目的，在JSF中的Bean其角色是属于Backing
Bean，又称之为Glue Bean。<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">作用是在真正的业务逻辑<span lang="EN-US">Bean及UI元件之间搭起桥梁，相当于STRUTS中的FormBean，对页面的值进行存储。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JSF将Bean的管理集中在faces-config.xml中，上面介绍的JSF的例子如下：<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;!-- bean定义 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;managed-bean-name&gt;user&lt;/managed-bean-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>&lt;managed-bean-class&gt;test.UserBean&lt;/managed-bean-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;/managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-class&gt;设定所要使用的Bean类别，&lt;managed-bean-name&gt;设定之名称，<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-scope&gt;设定Bean的存活范围，您可以设定为request、session
与application，设定为request时，Bean的存活时间为请求阶段。<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">您还可以将存活范围设定为<span lang="EN-US">none，当设定为none时会在需要的时候生成一个新的Bean，例如您在一个method中想要生成一个临时的Bean，就可以将之设定为none。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">如果有必要在启始<span lang="EN-US">Bean时，自动设置属性的初始值，则可以如下设定：<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">....<br />
&lt;managed-bean&gt;<br />
<span>&nbsp; </span>&lt;managed-bean-name&gt;user&lt;/managed-bean-name&gt;<br />
<span>&nbsp;&nbsp;&nbsp; </span>&lt;managed-bean-class&gt;<br />
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>test.UserBean<br />
<span>&nbsp;&nbsp;&nbsp; </span>&lt;/managed-bean-class&gt;<br />
<span>&nbsp; </span>&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<br />
<span>&nbsp;&nbsp;&nbsp; </span>&lt;managed-property&gt;<br />
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property-name&gt;name&lt;/property-name&gt;<br />
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;caterpillar&lt;/value&gt;<br />
<span>&nbsp;&nbsp;&nbsp; </span>&lt;/managed-property&gt;<br />
<span>&nbsp;&nbsp;&nbsp; </span>&lt;managed-property&gt;<br />
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property-name&gt;password&lt;/property-name&gt;<br />
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;123456&lt;/value&gt;<br />
<span>&nbsp;&nbsp;&nbsp; </span>&lt;/managed-property&gt;<br />
&lt;/managed-bean&gt;<br />
....　<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">您的属性不一定是字串值，也许会是<span lang="EN-US">int、float、boolean等等型态，您可以设定&lt;value&gt;
值时指定这些值的字串名称，JSF会尝试进行转换。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">您也可以将其它产生的<span lang="EN-US">Bean设定给另一个Bean的属性，例如：<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-name&gt;user&lt;/managed-bean-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-class&gt;test.UserBean&lt;/managed-bean-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-name&gt;userinfo&lt;/managed-bean-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-class&gt;test.UserBeanInfo&lt;/managed-bean-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-property&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;property-name&gt;userBean&lt;/property-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;property-class&gt;test.UserBeanService&lt;/property-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;value&gt;#{user}&lt;/value&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/managed-property&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">在<span lang="EN-US">UserBeanInfo里面定义了变量userBean，变量userBean的类型是类UserBean，这里就把变量userBean直接赋值为#{user}。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><strong><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">2.JSF <a name="JavaBean反向注入">JavaBean</a>示例（反向注入）<o:p></o:p></span></strong></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">其实通常我们所说的反向注入（<span lang="EN-US">Ioc）就是这个，这也是JSF和STRUTS一个非常大的区别，JSF支持反向注入，它可以更好的管理业务Bean的对象。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">下面举个例子：<span lang="EN-US"><o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">在配置文件中：<span lang="EN-US"><o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-name&gt;userinfo&lt;/managed-bean-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-class&gt;test.UserBeanInfo&lt;/managed-bean-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;managed-property&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;property-name&gt;userBean&lt;/property-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;property-class&gt;test.UserBeanService&lt;/property-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;value&gt;#{user}&lt;/value&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/managed-property&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">这样，当<span lang="EN-US">UserBeanInfo的实例建立的时候，就会自动将UserBeanService的对象赋值给UserBeanInfo实例的变量userBean。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">JsfBeanExample.jsp<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@taglib
uri="http://java.sun.com/jsf/core" prefix="f"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@taglib
uri="http://java.sun.com/jsf/html" prefix="h"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@page
contentType="text/html;charset=utf-8"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;html&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;head&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;title&gt;JSF JavaBean示例（反向注入）&lt;/title&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/head&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;body&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;f:view&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h:form&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h3&gt;请输入您的名称&lt;/h3&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h:outputText value="#{user.errMessage}"
style="color:red"/&gt;&lt;p&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;!-- 姓名 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>名称: :&lt;h:inputText value="#{user.name}"
/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;p&gt;密码:&lt;h:inputSecret value="#{user.password}"/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;p&gt;&lt;h:commandButton value="送出"<o:p></o:p></span></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:oval id="_x0000_s1026" style='position:absolute;
left:0;text-align:left;margin-left:158.55pt;margin-top:.25pt;width:117pt;
height:18pt;z-index:1' filled="f" strokecolor="red" strokeweight="2pt" /><![endif]--><!--[if !vml]--><span style="position: relative; z-index: 0;"><span style="position: absolute; left: 210px; top: -1px; width: 159px; height: 27px;"><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/09/clip_image001.gif" v:shapes="_x0000_s1026" width="159" height="27"  alt="" /></span></span><!--[endif]--><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>action="#{userinfo.verify1}"
/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/h:form&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/f:view&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/body&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/html&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">UserBeanInfo.java:<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">package test;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">public class UserBeanInfo
{<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UserBeanService userBean;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>public String verify1() {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if (!userBean.getName().equals("sunlin")<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>||
!userBean.getPassword().equals("123456")) {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>userBean.setErrMessage("名称或者密码错误1（依赖注入实现）");<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return "failure";<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>} else {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return "success";<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>/**<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;</span>* userBean をセットする<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;</span>* @param userBean the
userBean to set<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;</span>*/<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>public void setUserBean(UserBeanService userBean) {<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>this.userBean = userBean;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">}<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">UserBeanInfo的类里面并没有绑定页面输入的信息，页面输入的信息是绑定在Userbean中的。但是我们在faces-config.xml配置文件中设置了反向注入，<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">将<span lang="EN-US">UserBeanService直接设置到UserBeanInfo的变量userBean里，所以在类UserBeanInfo中可以直接取得Userbean中的信息进行Check。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">▲注意：UserBeanInfo中必须要定义setUserBean()方法。<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><a href="http://localhost:8080/jsfTest/pages/jsfBeanExample.faces"><span style="color: black; text-decoration: none;">http://localhost:8080/jsfTest/pages/jsfBeanExample.faces</span></a></span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"> </span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">当你用户名或者密码出错的时候，</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Message</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="ZH-CN">就会显示在页面上。</span></span><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<img src ="http://www.blogjava.net/ocean07000814/aggbug/252046.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:46 <a href="http://www.blogjava.net/ocean07000814/articles/252046.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一 一个简单的JSF程序</title><link>http://www.blogjava.net/ocean07000814/articles/252045.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Tue, 20 Jan 2009 06:46:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/252045.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/252045.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/252045.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/252045.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/252045.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 9" />
<meta name="Originator" content="Microsoft Word 9" />
<link rel="File-List" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/05/clip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/05/clip_editdata.mso" /><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:UseFELayout/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:宋体;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-alt:"MS Mincho";
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-alt:"MS Gothic";
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
{font-family:"Comic Sans MS";
panose-1:3 15 7 2 3 3 2 2 2 4;
mso-font-charset:0;
mso-generic-font-family:script;
mso-font-pitch:variable;
mso-font-signature:647 0 0 0 159 0;}
@font-face
{font-family:"ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@ＭＳ Ｐゴシック";
panose-1:2 11 6 0 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:variable;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ ゴシック";
panose-1:2 11 6 9 7 2 5 8 2 4;
mso-font-charset:128;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
@font-face
{font-family:"\@ＭＳ 明朝";
panose-1:2 2 6 9 4 2 5 8 3 4;
mso-font-charset:128;
mso-generic-font-family:roman;
mso-font-pitch:fixed;
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
h1
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:1;
font-size:24.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h2
{mso-style-next:標準;
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:2;
font-size:18.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h3
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:3;
font-size:14.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h4
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
h5
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;}
h6
{mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
page-break-after:avoid;
mso-outline-level:6;
font-size:8.0pt;
font-family:"ＭＳ Ｐゴシック";
color:#000099;
mso-font-kerning:1.0pt;
font-weight:normal;
mso-bidi-font-weight:bold;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:1.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:2.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:3.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:4.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:5.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:6.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:7.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:標準;
margin-top:0mm;
margin-right:0mm;
margin-bottom:0mm;
margin-left:8.0gd;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
mso-char-indent-count:-1.0;
mso-char-indent-size:10.5pt;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"索引 1";
margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ ゴシック";
mso-fareast-font-family:SimSun;
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;
mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
{color:#000099;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:#339966;
text-decoration:underline;
text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin:0mm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
background:navy;
font-size:10.5pt;
font-family:Arial;
mso-fareast-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
p
{margin-right:0mm;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0mm;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.5pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"ＭＳ Ｐゴシック";
mso-bidi-font-family:"Times New Roman";
color:black;}
pre
{margin:0mm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
font-size:10.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Courier New";
color:windowtext;}
span.code-keyword
{mso-style-name:code-keyword;}
span.code-object
{mso-style-name:code-object;}
span.hilite1
{mso-style-name:hilite1;}
span.hilite2
{mso-style-name:hilite2;}
span.wenzhangcon
{mso-style-name:wenzhang_con;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:99.25pt 30.0mm 30.0mm 30.0mm;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:192348167;
mso-list-type:hybrid;
mso-list-template-ids:-704846568 -618902396 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
mso-ansi-font-size:11.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"ＭＳ 明朝";}
@list l1
{mso-list-id:231738792;
mso-list-type:hybrid;
mso-list-template-ids:157436104 830738612 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l1:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;
mso-ansi-font-weight:normal;}
@list l2
{mso-list-id:535385560;
mso-list-type:hybrid;
mso-list-template-ids:1595598884 -360808338 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l2:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:538667892;
mso-list-type:hybrid;
mso-list-template-ids:333587862 -1594848292 67698699 67698701 67698689 67698699 67698701 67698689 67698699 67698701;}
@list l3:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:◆;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-bidi-font-family:"Times New Roman";}
@list l4
{mso-list-id:655108335;
mso-list-type:hybrid;
mso-list-template-ids:1941334218 -1229129530 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l4:level1
{mso-level-tab-stop:29.05pt;
mso-level-number-position:left;
margin-left:29.05pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:666832420;
mso-list-type:hybrid;
mso-list-template-ids:1385218472 1513126010 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l5:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:SimSun;
mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";}
@list l6
{mso-list-id:703020059;
mso-list-type:hybrid;
mso-list-template-ids:-1615819334 448289824 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l6:level1
{mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;
font-family:"ＭＳ 明朝";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
@list l7
{mso-list-id:1930306018;
mso-list-type:hybrid;
mso-list-template-ids:-689127960 -806612280 67698711 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l7:level1
{mso-level-text:%1．;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-36.0pt;}
@list l8
{mso-list-id:2087264629;
mso-list-type:hybrid;
mso-list-template-ids:497178426 -145033720 -1520680842 67698705 67698703 67698711 67698705 67698703 67698711 67698705;}
@list l8:level1
{mso-level-tab-stop:19.5pt;
mso-level-number-position:left;
margin-left:19.5pt;
text-indent:-19.5pt;
font-family:SimSun;
mso-ascii-font-family:"ＭＳ ゴシック";
mso-hansi-font-family:"ＭＳ ゴシック";
mso-ansi-font-weight:bold;}
@list l8:level2
{mso-level-tab-stop:39.0pt;
mso-level-number-position:left;
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l9
{mso-list-id:2125735041;
mso-list-type:hybrid;
mso-list-template-ids:705081986 -1428633308 458388728 -638169918 351016214 1587436938 45270452 902581502 227823400 1010046992;}
@list l9:level1
{mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0mm;}
ul
{margin-bottom:0mm;}
-->
</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1030" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">首先要到<span lang="EN-US">JSF官网上下载参考实例，并将其lib目录下的jar文件复制到你的应用程序/WEB-INF/lib目录下。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">这里我已经下载好了，在示例<span lang="EN-US">src的lib目录下可以找到。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">需要一下档案：<span lang="EN-US"><o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>jsf-impl.jar<br />
<span>&nbsp;</span>jsf-api.jar<br />
<span>&nbsp;</span>commons-digester.jar<br />
<span>&nbsp;</span>commons-collections.jar<br />
<span>&nbsp;</span>commons-beanutils.jar<br />
<span>&nbsp;</span>jstl.jar<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>standard.jar<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">配置<span lang="EN-US">Web应用程式的web.xml
<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;?xml
version="1.0" encoding="UTF-8"?&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;web-app id="WebApp_ID"
version="2.4"<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>xmlns="http://java.sun.com/xml/ns/j2ee"<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;description&gt;JSF Test&lt;/description&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;display-name&gt;JSF Test&lt;/display-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;servlet&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/servlet&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;servlet-mapping&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:oval id="_x0000_s1026" style='position:absolute;
left:0;text-align:left;margin-left:140.55pt;margin-top:.25pt;width:90pt;
height:18pt;z-index:1' filled="f" strokecolor="red" strokeweight="2pt" /><![endif]--><!--[if !vml]--><span style="position: relative; z-index: 0;"><span style="position: absolute; left: 186px; top: -1px; width: 123px; height: 27px;"><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/05/clip_image001.gif" v:shapes="_x0000_s1026" width="123" height="27"  alt="" /></span></span><!--[endif]--><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;url-pattern&gt;*.faces&lt;/url-pattern&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m0,0l0,21600,21600,21600,21600,0xe">
<v:stroke joinstyle="miter" />
<v:path gradientshapeok="t" o:connecttype="rect" />
</v:shapetype><v:shape id="_x0000_s1027" type="#_x0000_t202" style='position:absolute;
left:0;text-align:left;margin-left:212.55pt;margin-top:9.25pt;width:306pt;
height:27pt;z-index:2'>
<v:textbox style='mso-next-textbox:#_x0000_s1027' />
</v:shape><![endif]--><!--[if !vml]--><span style="position: absolute; z-index: 1; left: 0px; margin-left: 283px; margin-top: 12px; width: 411px; height: 39px;">
<table cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="background: white none repeat scroll 0% 0%; vertical-align: top; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top" width="411" align="left" bgcolor="white" height="39"><!--[endif]--><!--[if !mso]--><span style="position: absolute; left: 0pt; z-index: 2;">
            <table width="100%" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td><!--[endif]-->
                        <div v:shape="_x0000_s1027" style="padding: 3.6pt 7.2pt;" class="shape">
                        <p class="MsoNormal"><span style="color: red;">例如请求是</span><span style="font-family: &quot;Comic Sans MS&quot;; color: red;" lang="EN-US">/index.faces</span><span style="color: red;">的话，则实际上会唤起</span><span style="font-family: &quot;Comic Sans MS&quot;; color: red;" lang="EN-US">/index.jsp</span><span style="color: red;">网页</span><span style="color: red;" lang="EN-US"><o:p></o:p></span></p>
                        </div>
                        <!--[if !mso]--></td>
                    </tr>
                </tbody>
            </table>
            </span><!--[endif]--><!--[if !mso & !vml]-->&nbsp;<!--[endif]--><!--[if !vml]--></td>
        </tr>
    </tbody>
</table>
</span><!--[endif]--><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/servlet-mapping&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;welcome-file-list&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/welcome-file-list&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/web-app&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">写一个简单的<span lang="EN-US">JavaBean：<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">具体程序参看示例程序：<span lang="EN-US">jsfTest\src\test\UserBean.java，编译好之后放置在/WEB-INF/classes下。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">再登入网页<span lang="EN-US">/pages/index.jsp，使用者填入名称并送出表单，在/pages/welcome.jsp中显示Bean中的使用者名称与欢迎讯息。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">定义一个<span lang="EN-US">/WEB-INF/faces-config.xml，<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">如下：<span lang="EN-US"><o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;!-- bean定义 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:oval id="_x0000_s1028" style='position:absolute;
left:0;text-align:left;margin-left:140.55pt;margin-top:9.25pt;width:126pt;
height:1in;z-index:3' filled="f" strokecolor="red" strokeweight="2pt" /><![endif]--><!--[if !vml]--><span style="position: absolute; z-index: 2; left: 0px; margin-left: 186px; margin-top: 11px; width: 171px; height: 99px;"><img src="file:///C:/DOCUME%7E1/sunlin/LOCALS%7E1/Temp/msoclip1/05/clip_image002.gif" v:shapes="_x0000_s1028" width="171" height="99"  alt="" /></span><!--[endif]--><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;managed-bean-name&gt;user&lt;/managed-bean-name&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;managed-bean-class&gt;test.UserBean&lt;/managed-bean-class&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:shape id="_x0000_s1029" type="#_x0000_t202" style='position:absolute;left:0;text-align:left;margin-left:266.55pt;
margin-top:.25pt;width:252pt;height:27pt;z-index:4'>
<v:textbox style='mso-next-textbox:#_x0000_s1029' />
</v:shape><![endif]--><!--[if !vml]--><span style="position: absolute; z-index: 3; left: 0px; margin-left: 355px; margin-top: 0px; width: 339px; height: 39px;">
<table cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="background: white none repeat scroll 0% 0%; vertical-align: top; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" valign="top" width="339" align="left" bgcolor="white" height="39"><!--[endif]--><!--[if !mso]--><span style="position: absolute; left: 0pt; z-index: 4;">
            <table width="100%" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td><!--[endif]-->
                        <div v:shape="_x0000_s1029" style="padding: 3.6pt 7.2pt;" class="shape">
                        <p class="MsoNormal"><span style="font-family: SimSun; color: red;" lang="ZH-CN">关于</span><span style="color: red;" lang="EN-US">javaBean</span><span style="font-family: SimSun; color: red;" lang="ZH-CN">的几种管理，在下面会有详细的说明。</span><span style="color: red;" lang="EN-US"><o:p></o:p></span></p>
                        </div>
                        <!--[if !mso]--></td>
                    </tr>
                </tbody>
            </table>
            </span><!--[endif]--><!--[if !mso & !vml]-->&nbsp;<!--[endif]--><!--[if !vml]--></td>
        </tr>
    </tbody>
</table>
</span><!--[endif]--><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;/managed-bean&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;!-- 画面转移 --&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;navigation-rule&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;from-view-id&gt;/pages/index.jsp&lt;/from-view-id&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;navigation-case&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;from-outcome&gt;success&lt;/from-outcome&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;to-view-id&gt;/pages/welcome.jsp&lt;/to-view-id&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/navigation-case&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;navigation-case&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;from-outcome&gt;failure&lt;/from-outcome&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;to-view-id&gt;/pages/index.jsp&lt;/to-view-id&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/navigation-case&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;/navigation-rule&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">配置文件：<span lang="EN-US"><o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;navigation-rule&gt;设定，以决定在符合的条件成立时，该连结至哪一个页<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">在<span lang="EN-US">&lt;navigation-rule&gt;中的&lt;from-view-id&gt;是个选择性的定义，它规定了来源页面的条件<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;navigation-case&gt;中定义各种导览条件<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;from-outcome&gt;定义当表单结果符合的条件<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">在<span lang="EN-US">&lt;managed-bean&gt;中我们可以统一管理我们的Bean，我们设定Bean物件的存活范围是session，也就是使用者开启浏览器与程式互动过程中都存活。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">Index.jsp<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;%@taglib
uri="http://java.sun.com/jsf/core" prefix="f" %&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;%@taglib uri="http://java.sun.com/jsf/html"
prefix="h" %&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;%@page contentType="text/html;charset=utf-8"%&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;html&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;head&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;title&gt;第一个JSF程序&lt;/title&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;/head&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;body&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;f:view&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h:form&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;</span>&lt;h3&gt;请输入您的名称&lt;/h3&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>名称: &lt;h:inputText
value="#{user.name}"/&gt;&lt;p&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;h:commandButton value="送出" action="success"/&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/h:form&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>&lt;/f:view&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><span>&nbsp;</span>&lt;/body&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US">&lt;/html&gt;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;">将程序放入到<span lang="EN-US">Tomcat中启动，敲入<a href="http://localhost:8080/jsfDemo/pages/index.faces"><span style="color: black; text-decoration: none;">http://localhost:8080/jsfDemo/pages/index.faces</span></a>就可以显示欢迎页面了。<o:p></o:p></span></span></span></p>
<p class="MsoNormal"><span class="code-object"><span style="font-size: 11pt; font-family: SimSun;" lang="EN-US"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></span></span></p>
<img src ="http://www.blogjava.net/ocean07000814/aggbug/252045.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-20 14:46 <a href="http://www.blogjava.net/ocean07000814/articles/252045.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单的JSF实现依赖注入的例子</title><link>http://www.blogjava.net/ocean07000814/articles/250327.html</link><dc:creator>非洲小白脸</dc:creator><author>非洲小白脸</author><pubDate>Wed, 07 Jan 2009 07:05:00 GMT</pubDate><guid>http://www.blogjava.net/ocean07000814/articles/250327.html</guid><wfw:comment>http://www.blogjava.net/ocean07000814/comments/250327.html</wfw:comment><comments>http://www.blogjava.net/ocean07000814/articles/250327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ocean07000814/comments/commentRss/250327.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ocean07000814/services/trackbacks/250327.html</trackback:ping><description><![CDATA[<p>首先,写一个IUserService的接口,接口中只有属性方法: getUsername, getPassword, setUsername, setPassword四个方法.代码如下:</p>
<p>package net.moon.service;<br />
public interface IUserService ...{<br />
&nbsp;String getUsername();<br />
&nbsp;String getPassword();<br />
&nbsp;void setUsername(String username);<br />
&nbsp;void setPassword(String password);<br />
}</p>
<p>用一个类实现该接口,代码如下:</p>
<p>package net.moon.model;<br />
import net.moon.service.IUserService;<br />
public class UserInfo implements IUserService...{<br />
&nbsp;private String username;<br />
&nbsp;private String password;<br />
&nbsp;<br />
/** *//**<br />
&nbsp; * @return the usernmae<br />
&nbsp; */<br />
&nbsp;public String getUsername() ...{<br />
&nbsp; return username;<br />
&nbsp;}</p>
<p>/** *//**<br />
&nbsp; * @param usernmae the usernmae to set<br />
&nbsp; */<br />
&nbsp;public void setUsername(String usernmae) ...{<br />
&nbsp; this.username = usernmae;<br />
&nbsp;}</p>
<p>&nbsp;/** *//**<br />
&nbsp; * @return the password<br />
&nbsp; */<br />
&nbsp;public String getPassword() ...{<br />
&nbsp; return password;<br />
&nbsp;}</p>
<p>&nbsp;/** *//**<br />
&nbsp; * @param password the password to set<br />
&nbsp; */</p>
<p>public void setPassword(String password) ...{<br />
&nbsp; this.password = password;<br />
&nbsp;} <br />
}</p>
<p>写一个事务类,实现login功能,其中有一个类型为IUserService的域,代码如下:</p>
<p>package net.moon.business;</p>
<p>import net.moon.service.IUserService;</p>
<p>public class UserBO ...{</p>
<p>&nbsp;IUserService user;<br />
&nbsp;<br />
&nbsp;public String login()...{<br />
&nbsp; String result = "FAILED";<br />
&nbsp; //System.out.println(result);<br />
&nbsp; if(user.getUsername().equalsIgnoreCase("admin")<br />
&nbsp;&nbsp;&nbsp; &amp;&amp; user.getPassword().equals("password"))...{<br />
&nbsp;&nbsp; result = "PASS";<br />
&nbsp; }<br />
&nbsp; return result;<br />
&nbsp;}</p>
<p>&nbsp;/** *//**<br />
&nbsp; * @return the user<br />
&nbsp; */</p>
<p>&nbsp;public IUserService getUser() ...{<br />
&nbsp; return user;<br />
&nbsp;}</p>
<p>&nbsp;/** *//**<br />
&nbsp; * @param user the user to set<br />
&nbsp; */<br />
&nbsp;public void setUser(IUserService user) ...{<br />
&nbsp; this.user = user;<br />
&nbsp;}<br />
}</p>
<p><br />
注意该类中的属性方法setUser, 其中的参数user作为IUserService的接口类型.然后就是用什么方法对user进行注入,这时候就要想到JSF中的Managed Properties.</p>
<p>首先在,faces-config中配置UserInfo类为MBean,代码如下:</p>
<p>&nbsp;&lt;managed-bean&gt;<br />
&nbsp; &lt;managed-bean-name&gt;userInfo&lt;/managed-bean-name&gt;<br />
&nbsp; &lt;managed-bean-class&gt;net.moon.model.UserInfo&lt;/managed-bean-class&gt;<br />
&nbsp; &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<br />
&nbsp;&lt;/managed-bean&gt;</p>
<p>&nbsp;然后将事务类UserBO也配置为MBean,代码如下:</p>
<p>&nbsp;&lt;managed-bean&gt;<br />
&nbsp; &lt;managed-bean-name&gt;userBO&lt;/managed-bean-name&gt;<br />
&nbsp; &lt;managed-bean-class&gt;<br />
&nbsp;&nbsp; net.moon.business.UserBO<br />
&nbsp; &lt;/managed-bean-class&gt;</p>
<p>&nbsp;&lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;<br />
&nbsp; <span style="color: red">&lt;managed-property&gt;<br />
&nbsp;&nbsp; &lt;property-name&gt;user&lt;/property-name&gt;<br />
&nbsp;&nbsp; &lt;property-class&gt;<br />
&nbsp;&nbsp;&nbsp; net.moon.service.IUserService<br />
&nbsp;&nbsp; &lt;/property-class&gt;<br />
&nbsp;&nbsp; &lt;value&gt;#{userInfo}&lt;/value&gt;<br />
&nbsp; &lt;/managed-property&gt;</span><br />
&nbsp;&lt;/managed-bean&gt;</p>
<p>为userBO这个MBean配置了一个Managed Property,也就是要求JSF在实现userBO时, 用userInfo这个MBean为其user这个域赋值,从而实现注入.</p>
<p>接下来就是页面的实现了,首先是login页面, 代码如下:</p>
<p>&lt;%...@ page contentType="text/html; charset=UTF-8" %&gt;<br />
&lt;%...@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %&gt;<br />
&lt;%...@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %&gt;</p>
<p>&lt;html&gt;<br />
&nbsp;&lt;head&gt;<br />
&nbsp; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/&gt;<br />
&nbsp; &lt;title&gt;&lt;/title&gt;<br />
&nbsp;&lt;/head&gt;<br />
&nbsp;&lt;body&gt;<br />
&nbsp; &lt;f:view&gt;<br />
&nbsp;&nbsp; &lt;h:form&gt;<br />
&nbsp; &lt;h:panelGrid border="1" columns="2"&gt;<br />
&nbsp;&nbsp; &lt;h:outputText value="User Name:"&gt;&lt;/h:outputText&gt;<br />
&nbsp;&nbsp; &lt;h:inputText value="#{userInfo.username}"&gt;&lt;/h:inputText&gt;</p>
<p>&nbsp;&nbsp; &lt;h:outputText value="Password:"&gt;&lt;/h:outputText&gt;<br />
&nbsp;&nbsp; &lt;h:inputText value="#{userInfo.password}"&gt;&lt;/h:inputText&gt;<br />
&nbsp;&nbsp; &lt;/h:panelGrid&gt;<br />
&nbsp;&nbsp; &lt;h:commandButton value="Login" action="#{userBO.login}"&gt;&lt;/h:commandButton&gt;<br />
&nbsp;&lt;/h:form&gt;<br />
&nbsp; &lt;/f:view&gt;<br />
&nbsp;&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>表示登录成功的页面welcome.jsp,代码如下:</p>
<p>&lt;%...@ page contentType="text/html; charset=UTF-8" %&gt;<br />
&lt;%...@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %&gt;<br />
&lt;%...@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %&gt;</p>
<p>&lt;html&gt;<br />
&nbsp;&lt;head&gt;<br />
&nbsp; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/&gt;<br />
&nbsp; &lt;title&gt;&lt;/title&gt;<br />
&nbsp;&lt;/head&gt;<br />
&nbsp;&lt;body&gt;<br />
&nbsp; &lt;f:view&gt;<br />
&nbsp;&nbsp; &lt;h:form&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:outputText value="Welcome , #{userInfo.username}"&gt;&lt;/h:outputText&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/h:form&gt;<br />
&nbsp; &lt;/f:view&gt;<br />
&nbsp;&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>配置导航如下:</p>
<p>&nbsp;&lt;navigation-rule&gt;<br />
&nbsp; &lt;display-name&gt;login&lt;/display-name&gt;<br />
&nbsp; &lt;from-view-id&gt;/login.jsp&lt;/from-view-id&gt;<br />
&nbsp; &lt;navigation-case&gt;<br />
&nbsp;&nbsp; &lt;from-action&gt;#{userBO.login}&lt;/from-action&gt;<br />
&nbsp;&nbsp; &lt;from-outcome&gt;PASS&lt;/from-outcome&gt;<br />
&nbsp;&nbsp; &lt;to-view-id&gt;/welcome.jsp&lt;/to-view-id&gt;<br />
&nbsp; &lt;/navigation-case&gt;<br />
&nbsp; &lt;navigation-case&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from-action&gt;#{userBO.login}&lt;/from-action&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from-outcome&gt;FAILED&lt;/from-outcome&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;to-view-id&gt;/login.jsp&lt;/to-view-id&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/navigation-case&gt;<br />
&nbsp;&lt;/navigation-rule&gt;</p>
 <img src ="http://www.blogjava.net/ocean07000814/aggbug/250327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ocean07000814/" target="_blank">非洲小白脸</a> 2009-01-07 15:05 <a href="http://www.blogjava.net/ocean07000814/articles/250327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>