﻿<?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/wuxufeng8080/category/21718.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 27 Apr 2007 02:54:35 GMT</lastBuildDate><pubDate>Fri, 27 Apr 2007 02:54:35 GMT</pubDate><ttl>60</ttl><item><title>JSF--ajax4jsf入门示例(repeater)</title><link>http://www.blogjava.net/wuxufeng8080/archive/2007/04/27/113979.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Fri, 27 Apr 2007 00:54:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2007/04/27/113979.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/113979.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2007/04/27/113979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/113979.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/113979.html</trackback:ping><description><![CDATA[一、下载<br><a href="http://labs.jboss.com/jbossajax4jsf/downloads">http://labs.jboss.com/jbossajax4jsf/downloads</a>，现在的版本为1.1<br>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt" align=left><span lang=EN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Symbol; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-font-kerning: 0pt; mso-ansi-language: EN"><span style="mso-list: Ignore">&#183;<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN">复制<span lang=EN> ajax4jsf.jar and oscache-2.2.jar </span>到程序的<span lang=EN> WEB-INF/lib </span>文件夹下<span lang=EN>. <br>修改web.xml，增加a4j的filter配置<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">display-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Ajax4jsf&nbsp;Filter</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">display-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">ajax4jsf</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">org.ajax4jsf.Filter</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter-mapping</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">filter-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">ajax4jsf</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Faces&nbsp;Servlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">dispatcher</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">REQUEST</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">dispatcher</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">dispatcher</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">FORWARD</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">dispatcher</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">dispatcher</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">INCLUDE</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">dispatcher</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter-mapping</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">filter</span><span style="COLOR: #0000ff">&gt;</span></div>
</span></span><br>二、JSP<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000"><br><img id=Codehighlighter1_3_64_Open_Image onclick="this.style.display='none'; Codehighlighter1_3_64_Open_Text.style.display='none'; Codehighlighter1_3_64_Closed_Image.style.display='inline'; Codehighlighter1_3_64_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_3_64_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_3_64_Closed_Text.style.display='none'; Codehighlighter1_3_64_Open_Image.style.display='inline'; Codehighlighter1_3_64_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id=Codehighlighter1_3_64_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Codehighlighter1_3_64_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">https://ajax4jsf.dev.java.net/ajax</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;prefix</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">a4j</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_70_123_Open_Image onclick="this.style.display='none'; Codehighlighter1_70_123_Open_Text.style.display='none'; Codehighlighter1_70_123_Closed_Image.style.display='inline'; Codehighlighter1_70_123_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_70_123_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_70_123_Closed_Text.style.display='none'; Codehighlighter1_70_123_Open_Image.style.display='inline'; Codehighlighter1_70_123_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id=Codehighlighter1_70_123_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Codehighlighter1_70_123_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">http://java.sun.com/jsf/html</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;prefix</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">h</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_129_182_Open_Image onclick="this.style.display='none'; Codehighlighter1_129_182_Open_Text.style.display='none'; Codehighlighter1_129_182_Closed_Image.style.display='inline'; Codehighlighter1_129_182_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_129_182_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_129_182_Closed_Text.style.display='none'; Codehighlighter1_129_182_Open_Image.style.display='inline'; Codehighlighter1_129_182_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id=Codehighlighter1_129_182_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Codehighlighter1_129_182_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">http://java.sun.com/jsf/core</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;prefix</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">f</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">repeater</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">f:view</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h:form</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h:panelGrid&nbsp;</span><span style="COLOR: #ff0000">columns</span><span style="COLOR: #0000ff">="2"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h:outputText&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">="Type&nbsp;the&nbsp;Text:"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h:inputText&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">="#{bean.text}"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">a4j:support&nbsp;</span><span style="COLOR: #ff0000">event</span><span style="COLOR: #0000ff">="onkeyup"</span><span style="COLOR: #ff0000">&nbsp;reRender</span><span style="COLOR: #0000ff">="repeater"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h:inputText</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h:outputText&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">="Text&nbsp;in&nbsp;the&nbsp;AJAX&nbsp;Response:"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h:outputText&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="repeater"</span><span style="COLOR: #ff0000">&nbsp;value</span><span style="COLOR: #0000ff">="#{bean.text}"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h:panelGrid</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h:form</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">f:view</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span></div>
<span lang=EN style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">&lt;a4j:support event="onkeyup" reRender="repeater"/&gt;<br></span>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN">在这里我们在父标签<span lang=EN>(&lt;h:inputText&gt;)</span>中添加了一个<span lang=EN>AJAX </span>支持<span lang=EN>. </span>该支持绑定了<span lang=EN>JavaScript</span>事件<span lang=EN>&#8220;onkeyup&#8221; .</span>因此<span lang=EN>, </span>每一次该事件发布给父标签时<span lang=EN>,</span>我们的程序将发送一个<span lang=EN>AJAX</span>请求到<span lang=EN>Server.</span>这意味着我们的受管理的<span lang=EN>bean</span>将包含该<span lang=EN>&#8220;text&#8221; </span>域中我们输入的最新数据<span lang=EN>. <o:p></o:p></span></span></p>
<span lang=EN style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">&lt;a4j:support&gt; </span><span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">标签的<span lang=EN>&#8220;reRender&#8221; </span>属性<span lang=EN>(attribute)</span>定义我们的页面的哪一部分被更新<span lang=EN>. </span>在这里<span lang=EN>,</span>该页面唯一被更新的部位是<span lang=EN> &lt;h:outputText&gt; </span>标签<span lang=EN>,</span>因为他的<span lang=EN>ID</span>值和<span lang=EN>&#8220;reRender&#8221; </span>的属性值向匹配<span lang=EN>. </span>在一个页面中更新多个元素<span lang=EN>(elements)</span>也是很简单的<span lang=EN>:</span>仅仅把他们的<span lang=EN>IDs</span>放在<span lang=EN> &#8220;reRender&#8221; </span>属性中就可以了<span lang=EN>.</span></span><br><br>三、Bean &amp; faces-config.xml<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000">&nbsp;com.ivo.a4j.bean;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_45_249_Open_Image onclick="this.style.display='none'; Codehighlighter1_45_249_Open_Text.style.display='none'; Codehighlighter1_45_249_Closed_Image.style.display='inline'; Codehighlighter1_45_249_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_45_249_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_45_249_Closed_Text.style.display='none'; Codehighlighter1_45_249_Open_Image.style.display='inline'; Codehighlighter1_45_249_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Bean&nbsp;</span><span id=Codehighlighter1_45_249_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Codehighlighter1_45_249_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;String&nbsp;text;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_86_140_Open_Image onclick="this.style.display='none'; Codehighlighter1_86_140_Open_Text.style.display='none'; Codehighlighter1_86_140_Closed_Image.style.display='inline'; Codehighlighter1_86_140_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_86_140_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_86_140_Closed_Text.style.display='none'; Codehighlighter1_86_140_Open_Image.style.display='inline'; Codehighlighter1_86_140_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;Bean()&nbsp;</span><span id=Codehighlighter1_86_140_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Codehighlighter1_86_140_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">text&nbsp;=&nbsp;"11";<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">System.out.println("Create");</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_168_186_Open_Image onclick="this.style.display='none'; Codehighlighter1_168_186_Open_Text.style.display='none'; Codehighlighter1_168_186_Closed_Image.style.display='inline'; Codehighlighter1_168_186_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_168_186_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_168_186_Closed_Text.style.display='none'; Codehighlighter1_168_186_Open_Image.style.display='inline'; Codehighlighter1_168_186_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;String&nbsp;getText()&nbsp;</span><span id=Codehighlighter1_168_186_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Codehighlighter1_168_186_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;text;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_223_246_Open_Image onclick="this.style.display='none'; Codehighlighter1_223_246_Open_Text.style.display='none'; Codehighlighter1_223_246_Closed_Image.style.display='inline'; Codehighlighter1_223_246_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_223_246_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_223_246_Closed_Text.style.display='none'; Codehighlighter1_223_246_Open_Image.style.display='inline'; Codehighlighter1_223_246_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;setText(String&nbsp;text)&nbsp;</span><span id=Codehighlighter1_223_246_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Codehighlighter1_223_246_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.text&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;text;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>faces-config.xml<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;?</span><span style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="COLOR: #0000ff">?&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE&nbsp;faces-config&nbsp;PUBLIC&nbsp;"-//Sun&nbsp;Microsystems,&nbsp;Inc.//DTD&nbsp;JavaServer&nbsp;Faces&nbsp;Config&nbsp;1.1//EN"&nbsp;"http://java.sun.com/dtd/web-facesconfig_1_1.dtd"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">faces-config</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">managed-bean</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">managed-bean-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">bean</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">managed-bean-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">managed-bean-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">com.ivo.a4j.bean.Bean</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">managed-bean-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">managed-bean-scope</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">request</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">managed-bean-scope</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">managed-bean</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">faces-config</span><span style="COLOR: #0000ff">&gt;</span></div>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/113979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-04-27 08:54 <a href="http://www.blogjava.net/wuxufeng8080/archive/2007/04/27/113979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF--整合spring</title><link>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113830.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Thu, 26 Apr 2007 08:18:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113830.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/113830.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113830.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/113830.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/113830.html</trackback:ping><description><![CDATA[使用JSF-Spring整合<br><strong>一、下载</strong><br>进官方网站<a href="http://jsf-spring.sourceforge.net/">http://jsf-spring.sourceforge.net</a>，下载lib<br><br><strong>二、参考quickstart配置相应文件<br></strong><a href="http://jsf-spring.sourceforge.net/quickstart.shtml">http://jsf-spring.sourceforge.net/quickstart.shtml</a><br>最终配置结果如下<br>web.xml<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;?</span><span style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="COLOR: #0000ff">?&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">web-app&nbsp;</span><span style="COLOR: #ff0000">xmlns</span><span style="COLOR: #0000ff">="http://java.sun.com/xml/ns/j2ee"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="COLOR: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="COLOR: #ff0000">&nbsp;version</span><span style="COLOR: #0000ff">="2.4"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="COLOR: #0000ff">="http://java.sun.com/xml/ns/j2ee&nbsp;&nbsp;&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">context-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">javax.faces.CONFIG_FILES</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/WEB-INF/classes/faces/faces-config.xml,&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/WEB-INF/classes/faces/faces-config-beans.xml<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">context-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">context-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">contextConfigLocation</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classpath*:spring/applicationContext-*.xml<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">param-value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">context-param</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Faces&nbsp;Servlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">javax.faces.webapp.FacesServlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">load-on-startup</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">load-on-startup</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-mapping</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Faces&nbsp;Servlet</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">url-pattern</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">*.faces</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">url-pattern</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">servlet-mapping</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">listener</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">listener-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.springframework.web.context.request.RequestContextListener<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">listener-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">listener</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">listener</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">listener-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.springframework.web.context.ContextLoaderListener<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">listener-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">listener</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">listener</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">listener-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">de.mindmatters.faces.spring.context.ContextLoaderListener</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">listener-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">listener</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">web-app</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
请注意以上listener的顺序，如果位置不同可能出现找不到在spring中定义的bean。请按以上顺序配置即可。<br><br>根据quitstart配置完之后可能还有如下异常：<br>org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.faces.el.EvaluationException: de.mindmatters.faces.spring.factory.BeansEvaluationException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uiBean': Scope 'request' is not active; nested exception is java.lang.IllegalStateException: No thread-bound request: use RequestContextFilter<br>org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:532)<br>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:408)<br>org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)<br>org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)<br>javax.servlet.http.HttpServlet.service(HttpServlet.java:803)<br>com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)<br>com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:147)<br>de.mindmatters.faces.lifecycle.RenderResponsePhase.executePhase(RenderResponsePhase.java:45)<br>de.mindmatters.faces.lifecycle.AbstractPhase.execute(AbstractPhase.java:37)<br>de.mindmatters.faces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:166)<br>de.mindmatters.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:226)<br>javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)<br>然后再把这个listener加上<br><span style="COLOR: red">&lt;listener&gt;<br>&nbsp;&nbsp;&lt;listener-class&gt;org.springframework.web.context.request.RequestContextListener&lt;/listener-class&gt;<br>&nbsp;&lt;/listener&gt;</span><br>就ok了。<br><br>可选<br>如果还有问题，在faces-config.xml中添加<br>&lt;application&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;variable-resolver&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;org.springframework.web.jsf.DelegatingVariableResolver<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/variable-resolver&gt;<br>&nbsp;&nbsp;&lt;view-handler&gt;com.sun.facelets.FaceletViewHandler&lt;/view-handler&gt;<br>&nbsp;&lt;/application&gt;<br>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/113830.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-04-26 16:18 <a href="http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF--Navigate</title><link>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113789.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Thu, 26 Apr 2007 07:23:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113789.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/113789.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/113789.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/113789.html</trackback:ping><description><![CDATA[JSF中最重要的导航设置<br>一、静态导航<br>&lt;h:commandButton label="Login" action="login"/&gt;<br>通过action返回的字符串，然后比较&nbsp;&nbsp;&nbsp;from-outcome标签值，如果相同，就返回到&nbsp;&nbsp;&nbsp;to-view-id&nbsp; 制定的页面<br>注： view ID strings must start with a <tt>/</tt>.<br>二、动态导航<br>&lt;h:commandButton label="Login" action="#{loginController.verifyUser}"/&gt;<br>根据action中调用的bean方法返回值来确定显示页面<br>loginController的验证方法<br>String verifyUser() {<br><br>&nbsp;&nbsp; if (...)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "success";<br><br>&nbsp;&nbsp; else<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "failure";<br><br>}<br><br><br>三、高级导航<br>Redirection<br>如果你在to-view-id 后 加redirect元素，则JSP容器即中断当前request请求，并发送一个HTTP redirect&nbsp;请求到client.&nbsp;<br>&lt;navigation-case&gt;<br>&nbsp;&nbsp; &lt;from-outcome&gt;success&lt;/from-outcome&gt;<br>&nbsp;&nbsp; &lt;to-view-id&gt;/success.jsp&lt;/to-view-id&gt;<br>&nbsp;&nbsp; &lt;redirect/&gt;<br>&lt;/navigation-case&gt;<br><br>Wildcards(通配符)<br>&lt;navigation-rule&gt;<br>&nbsp;&nbsp; &lt;from-view-id&gt;/secure/*&lt;/from-view-id&gt;<br>&nbsp;&nbsp; &lt;navigation-case&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . . .<br>&nbsp;&nbsp; &lt;/navigation-case&gt;<br>&lt;/navigation-rule&gt;<br>只要是在/secure/这个目录下的页面都使用这个导航规则。<br><br>所有<br>&lt;from-view-id&gt;/*&lt;/from-view-id&gt;<br>
<p>or<br>&lt;from-view-id&gt;*&lt;/from-view-id&gt;<br><br>Using <tt>from-action<br></tt>&lt;navigation-case&gt;<br>&nbsp; &lt;from-action&gt;#{quiz.answerAction}&lt;/from-action&gt;<br>&nbsp; &lt;from-outcome&gt;again&lt;/from-outcome&gt;<br>&nbsp; &lt;to-view-id&gt;/again.jsp&lt;/to-view-id&gt;<br>&lt;/navigation-case&gt;<br>&lt;navigation-case&gt;<br>&nbsp; &lt;from-action&gt;#{quiz.startOverAction}&lt;/from-action&gt;<br>&nbsp; &lt;from-outcome&gt;again&lt;/from-outcome&gt;<br>&nbsp; &lt;to-view-id&gt;/index.jsp&lt;/to-view-id&gt;<br>&lt;/navigation-case&gt;<br>根据不同的action使用不同的导航规则。<br><br>导航算法<br></p>
<p>The algorithm has three inputs（算法有三个输入）:</p>
<ul>
    <li>
    <p>The outcome, that is, the value of an action attribute or the string resulting from the invocation of a method reference. action属性的值或者引用方法的返回结果（字符串类型）</p>
    <li>
    <p>The view ID of the current view。当前视图</p>
    <li>
    <p>The action, that is, the literal value of the action attribute in the component that triggered the navigation.用以触发导航的组件属性。</p>
    </li>
</ul>
<p class=docText>The first of two phases is to find the matching <tt>navigation-rule</tt>, following these steps（第二阶段的第一步就是寻找符合的导航规则）.</p>
<ul class=doclist START="">
    <li>If the outcome is <tt>null</tt>, return immediately and redisplay the current page.（如果outcome是空，则立刻返回重新显示当前页面）
    <li>Merge all navigation rules with the same <tt>from-view-id</tt> value.（合并相同from-view-id的导航规则）
    <li>Try to find a navigation rule whose <tt>from-view-id</tt> value matches the view ID exactly. If such a rule exists, take it.
    <li>Consider all navigation rules whose <tt>from-view-id</tt> values end with a wildcard suffix, such as <tt>secure</tt>. For each such rule, check whether the prefix (after removing the <tt>*</tt>) is identical to the corresponding prefix of the view ID. If there are matching rules, take the one with the longest matching prefix.
    <li>If there is a rule without a <tt>from-view-id</tt>, take it.（如果有没有from-view-id的规则，使用）
    <li>If there is no match at all, redisplay the current page.（如果都没有符合，重新显示当前页面）</li>
</ul>
<p class=docText>The second of two phases is to consider all <tt>navigation-case</tt> elements in the matching navigation rule (which may consist of several merged <tt>navigation-rule</tt> elements with matching <tt>from-view-id</tt>.values).</p>
<p class=docText>Follow these steps to find the matching case.</p>
<ul class=doclist START="">
    <li>If a case has both matching <tt>from-outcome</tt> and <tt>from-action</tt>, take it.
    <li>Otherwise, if a case has matching <tt>from-outcome</tt> and no <tt>from-action</tt>, take it.
    <li>Otherwise, if a case has matching <tt>from-action</tt> and no <tt>from-outcome</tt>, take it.
    <li>Otherwise, if there is a case with neither <tt>from-outcome</tt> or <tt>from-action</tt>, take it.
    <li>If there is no match at all, redisplay the current page.<br>Naturally, we recommend that you do not create tricky navigation rules in your own programs. As long as you stay away from wildcards and <tt>from-action</tt> elements, you won't need to know about the gory details of the navigation algorithm.</li>
</ul>
<p><br>&nbsp;</p>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/113789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-04-26 15:23 <a href="http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF--Managed Beans</title><link>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113768.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Thu, 26 Apr 2007 06:00:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113768.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/113768.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113768.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/113768.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/113768.html</trackback:ping><description><![CDATA[<p><strong style="COLOR: #3366ff">一、beans在 faces-config.xml中的定义</strong><br>格式如下：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">managed-bean</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">managed-bean-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">user</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">managed-bean-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">managed-bean-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">com.corejsf.UserBean</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">managed-bean-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">managed-bean-scope</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">session</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">managed-bean-scope</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">managed-bean</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
意思：在session中创建了一个user名字的UserBean对象。<br>在bean定义之后，就可以通过JSF组件来访问Bean的属性。<br>&nbsp;如&nbsp;&nbsp;&nbsp;&nbsp;&lt;h:inputSecret value="#{user.password}"/&gt;，访问userbean的password属性。<br><br><span style="COLOR: #3366ff"><strong>二、Message Bundle</strong></span><br>自定义资源文件<font face="Courier New">com/corejsf/messages.properties</font>，通过f:loadBundle访问<br>&lt;f:loadBundle basename="com.corejsf.messages" var="msgs"/&gt;<br>basename : properties文件的路径<br>var: 文件定义的message key<br><br><font face="Courier New">com/corejsf/messages_de.properties</font>.<br>国际化，在默认资源文件的基础上，增加后缀，标识语言类别。<br><br>语言默认显示设置<br>
<li>
<p class=docList>You can add a <tt>locale</tt> attribute to the <tt>f:view</tt> element, for example&nbsp;&nbsp;&nbsp;&lt;f:view locale="de"&gt;</p>
<li>
<p class=docList>You can set the default and supported locales in <tt>WEB-INF/faces-config.xml</tt> (or another application configuration resource):</p>
<pre>&lt;faces-config&gt;
&lt;application&gt;
&lt;locale-config&gt;
&lt;default-locale&gt;en&lt;/default-locale&gt;
&lt;supported-locale&gt;de&lt;/supported-locale&gt;
&lt;/locale-config&gt;
&lt;/application&gt;
&lt;/faces-config&gt;
</pre>
<strong><span style="COLOR: #3366ff">三、Backing Beans<br></span><font color=#3366ff>四、Bean Scope</font></strong> </li>
<p>Request</p>
<p>Session<br>Application</p>
<p>五、Configure Bean&nbsp;<br>设置属性值<br>&nbsp; &lt;managed-bean&gt;<br>&nbsp;&nbsp; &lt;managed-bean-name&gt;user&lt;/managed-bean-name&gt;<br>&nbsp;&nbsp; &lt;managed-bean-class&gt;com.corejsf.UserBean&lt;/managed-bean-class&gt;<br>&nbsp;&nbsp; &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<br>&nbsp;&nbsp; <span class=docEmphStrong>&lt;managed-property&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class=docEmphStrong>&lt;property-name&gt;</span>name<span class=docEmphStrong>&lt;/property-name&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class=docEmphStrong>&lt;value&gt;</span>me<span class=docEmphStrong>&lt;/value&gt;</span><br>&nbsp;&nbsp; <span class=docEmphStrong>&lt;/managed-property&gt;</span><br>&nbsp;&nbsp; <span class=docEmphStrong>&lt;managed-property&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class=docEmphStrong>&lt;property-name&gt;</span>password<span class=docEmphStrong>&lt;/property-name&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class=docEmphStrong>&lt;value&gt;</span>secret<span class=docEmphStrong>&lt;/value&gt;</span><br>&nbsp;&nbsp; <span class=docEmphStrong>&lt;/managed-property&gt;</span><br>&lt;/managed-bean&gt;<br>设置null值<br>&lt;managed-property&gt;<br>&nbsp;&nbsp; &lt;property-name&gt;password&lt;/property-name&gt;<br>&nbsp;&nbsp; <span class=docEmphStrong>&lt;null-value/&gt;</span><br>&lt;/managed-property&gt;<br></p>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/113768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-04-26 14:00 <a href="http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF-- 入门 First Example</title><link>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113749.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Thu, 26 Apr 2007 04:56:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113749.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/113749.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/113749.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/113749.html</trackback:ping><description><![CDATA[<p>一、JSF开发环境<br>&nbsp;&nbsp;&nbsp;使用myeclipse的功能，添加相关lib到classpath。 或者从sun的官方网站下载相关lib。<br><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><a href="http://java.sun.com/javaee/javaserverfaces/download.html"><u><font color=#0000ff>http://java.sun.com/javaee/javaserverfaces/download.html</font></u></a></span><br>二、JSP页面<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index.jsp<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_10_63_Open_Image onclick="this.style.display='none'; Codehighlighter1_10_63_Open_Text.style.display='none'; Codehighlighter1_10_63_Closed_Image.style.display='inline'; Codehighlighter1_10_63_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_10_63_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_10_63_Closed_Text.style.display='none'; Codehighlighter1_10_63_Open_Image.style.display='inline'; Codehighlighter1_10_63_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id=Codehighlighter1_10_63_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_10_63_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">http://java.sun.com/jsf/core</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;prefix</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">f</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_70_123_Open_Image onclick="this.style.display='none'; Codehighlighter1_70_123_Open_Text.style.display='none'; Codehighlighter1_70_123_Closed_Image.style.display='inline'; Codehighlighter1_70_123_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_70_123_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_70_123_Closed_Text.style.display='none'; Codehighlighter1_70_123_Open_Image.style.display='inline'; Codehighlighter1_70_123_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id=Codehighlighter1_70_123_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_70_123_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">http://java.sun.com/jsf/html</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;prefix</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">h</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">f:view</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">A&nbsp;Simple&nbsp;JavaServer&nbsp;Faces&nbsp;Application</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h:form</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Please&nbsp;enter&nbsp;your&nbsp;name&nbsp;and&nbsp;password.</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">table</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Name:</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;&lt;</span><span style="COLOR: #800000">h:inputText&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">="#{user.name}"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Password:</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;&lt;</span><span style="COLOR: #800000">h:inputSecret&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">="#{user.password}"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;&lt;/</span><span style="COLOR: #800000">td</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">tr</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">table</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">p</span><span style="COLOR: #0000ff">&gt;&lt;</span><span style="COLOR: #800000">h:commandButton&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">="Login"</span><span style="COLOR: #ff0000">&nbsp;action</span><span style="COLOR: #0000ff">="login"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;&lt;/</span><span style="COLOR: #800000">p</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h:form</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">f:view</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;welcome.jsp</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_10_63_Open_Image onclick="this.style.display='none'; Codehighlighter1_10_63_Open_Text.style.display='none'; Codehighlighter1_10_63_Closed_Image.style.display='inline'; Codehighlighter1_10_63_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_10_63_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_10_63_Closed_Text.style.display='none'; Codehighlighter1_10_63_Open_Image.style.display='inline'; Codehighlighter1_10_63_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id=Codehighlighter1_10_63_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_10_63_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">http://java.sun.com/jsf/core</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;prefix</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">f</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_70_123_Open_Image onclick="this.style.display='none'; Codehighlighter1_70_123_Open_Text.style.display='none'; Codehighlighter1_70_123_Closed_Image.style.display='inline'; Codehighlighter1_70_123_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_70_123_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_70_123_Closed_Text.style.display='none'; Codehighlighter1_70_123_Open_Image.style.display='inline'; Codehighlighter1_70_123_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id=Codehighlighter1_70_123_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_70_123_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">http://java.sun.com/jsf/html</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;prefix</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">h</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">f:view</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">A&nbsp;Simple&nbsp;JavaServer&nbsp;Faces&nbsp;Application</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">&nbsp;Welcome&nbsp;to&nbsp;JavaServer&nbsp;Faces,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">h:outputText&nbsp;</span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">="#{user.name}"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000">&nbsp;!<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">h3</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">f:view</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<p><br>三、Bean<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UserBean&nbsp;.java<br>&nbsp;&nbsp;&nbsp;package com.test.jsf.bean;</p>
<p>public class UserBean {</p>
<p>&nbsp;private String name;</p>
<p>&nbsp;private String password;</p>
<p>&nbsp;// PROPERTY: name<br>&nbsp;public String getName() {<br>&nbsp;&nbsp;return name;<br>&nbsp;}</p>
<p>&nbsp;public void setName(String newValue) {<br>&nbsp;&nbsp;name = newValue;<br>&nbsp;}</p>
<p>&nbsp;// PROPERTY: password<br>&nbsp;public String getPassword() {<br>&nbsp;&nbsp;return password;<br>&nbsp;}</p>
<p>&nbsp;public void setPassword(String newValue) {<br>&nbsp;&nbsp;password = newValue;<br>&nbsp;}<br>&nbsp;<br>&nbsp;public String check() {<br>&nbsp;&nbsp;name = "wxf";<br>&nbsp;&nbsp;return "success";<br>&nbsp;&nbsp;//return SUCCESS;<br>&nbsp;}<br>}<br><br>四、faces-config<br>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "<a href="http://java.sun.com/dtd/web-facesconfig_1_1.dtd">http://java.sun.com/dtd/web-facesconfig_1_1.dtd</a>"&gt;<br>&lt;faces-config &gt;<br>&nbsp;&lt;navigation-rule&gt;<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; &lt;from-view-id&gt;/login/index.jsp&lt;/from-view-id&gt;<br>&nbsp;&nbsp;&nbsp; &lt;navigation-case&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from-outcome&gt;login&lt;/from-outcome&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;to-view-id&gt;/login/welcome.jsp&lt;/to-view-id&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/navigation-case&gt;<br>&nbsp;&lt;/navigation-rule&gt;<br>&nbsp;<br>&nbsp;&lt;managed-bean&gt;<br>&nbsp;&nbsp;&nbsp; &lt;managed-bean-name&gt;user&lt;/managed-bean-name&gt;<br>&nbsp;&nbsp;&nbsp; &lt;managed-bean-class&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; com.test.jsf.bean.UserBean<br>&nbsp;&nbsp;&nbsp; &lt;/managed-bean-class&gt;<br>&nbsp;&nbsp;&nbsp; &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;<br>&nbsp;&lt;/managed-bean&gt;</p>
<p>&lt;/faces-config&gt;<br>五、web.xml<br><br>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;web-app xmlns="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>"<br>&nbsp;xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>" version="2.4"<br>&nbsp;xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>&nbsp;&nbsp; <a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</a>"&gt;<br>&nbsp;&lt;context-param&gt;<br>&nbsp;&nbsp;&lt;param-name&gt;javax.faces.CONFIG_FILES&lt;/param-name&gt;<br>&nbsp;&nbsp;&lt;param-value&gt;/WEB-INF/faces-config.xml&lt;/param-value&gt;<br>&nbsp;&lt;/context-param&gt;<br><br>&nbsp;&lt;servlet&gt;<br>&nbsp;&nbsp;&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;<br>&nbsp;&nbsp;&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;<br>&nbsp;&nbsp;&lt;load-on-startup&gt;0&lt;/load-on-startup&gt;<br>&nbsp;&lt;/servlet&gt;<br>&nbsp;&lt;servlet-mapping&gt;<br>&nbsp;&nbsp;&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;<br>&nbsp;&nbsp;&lt;url-pattern&gt;*.faces&lt;/url-pattern&gt;<br>&nbsp;&lt;/servlet-mapping&gt;<br>&lt;/web-app&gt;</p>
<p><br>六、测试<br><br>&nbsp;&nbsp;&nbsp;http://localhost:8080/jsf/login/index.faces<br>注意，调用jsp页面时一定要使用faces，结尾，否则jsf的标签将无法识别</p>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/113749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-04-26 12:56 <a href="http://www.blogjava.net/wuxufeng8080/archive/2007/04/26/113749.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>