﻿<?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-guyue blog</title><link>http://www.blogjava.net/huguyue/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 12:37:36 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 12:37:36 GMT</pubDate><ttl>60</ttl><item><title>Javaserver Faces 简介 — 什么是 JSF？</title><link>http://www.blogjava.net/huguyue/archive/2005/10/28/17189.html</link><dc:creator>guyue</dc:creator><author>guyue</author><pubDate>Fri, 28 Oct 2005 07:55:00 GMT</pubDate><guid>http://www.blogjava.net/huguyue/archive/2005/10/28/17189.html</guid><wfw:comment>http://www.blogjava.net/huguyue/comments/17189.html</wfw:comment><comments>http://www.blogjava.net/huguyue/archive/2005/10/28/17189.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huguyue/comments/commentRss/17189.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huguyue/services/trackbacks/17189.html</trackback:ping><description><![CDATA[<H1 style="MARGIN: auto 0cm"><FONT face=宋体><SPAN lang=EN-US>Javaserver Faces </SPAN>简介<SPAN lang=EN-US> — </SPAN>什么是<SPAN lang=EN-US> JSF</SPAN>？</FONT></H1>
<P class=boldbodycopy style="MARGIN: auto 0cm"><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">作者：</SPAN><SPAN lang=EN-US><A href="http://jroller.com/page/cschalk"><FONT face=Arial color=#000000>Chris Schalk</FONT></A></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">，</SPAN></STRONG></FONT><FONT size=2><STRONG><SPAN lang=EN-US><FONT face=Arial>Oracle Corporation<BR>2005 </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">年</SPAN><SPAN lang=EN-US><FONT face=Arial> 4 </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">月</SPAN></STRONG></FONT></P>
<P class=boldbodycopy style="MARGIN: auto 0cm"><?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:chsdate w:st="on" Year="2005" Month="10" Day="28" IsLunarDate="False" IsROCDate="False"><SPAN lang=EN-US><FONT face=Arial size=2><STRONG>2005-10-28</STRONG></FONT></SPAN></st1:chsdate></P>
<P class=boldbodycopy style="MARGIN: auto 0cm"><STRONG><FONT size=2><SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">来源：</SPAN><SPAN lang=EN-US><FONT face=Arial>http://www.oracle.com/technology/global/cn/tech/java/newsletter/articles/introjsf/index.html</FONT></SPAN></FONT></STRONG></P>
<H2 style="MARGIN: auto 0cm"><FONT face=宋体>什么是<SPAN lang=EN-US> JSF</SPAN>？</FONT></H2>
<P><FONT face=宋体><SPAN lang=EN-US>JavaServer Faces (JSF) </SPAN>是一种用于构建<SPAN lang=EN-US> Web </SPAN>应用程序的新标准<SPAN lang=EN-US> Java </SPAN>框架。它提供了一种以组件为中心来开发<SPAN lang=EN-US> Java Web </SPAN>用户界面的方法，从而简化了开发。<SPAN lang=EN-US>JavaServer Faces </SPAN>还引起了广大<SPAN lang=EN-US> Java/Web </SPAN>开发人员的兴趣。<SPAN lang=EN-US>“</SPAN>企业开发人员<SPAN lang=EN-US>”</SPAN>和<SPAN lang=EN-US> Web </SPAN>设计人员将发现<SPAN lang=EN-US> JSF </SPAN>开发可以简单到只需将用户界面<SPAN lang=EN-US> (UI) </SPAN>组件拖放到页面上，而<SPAN lang=EN-US>“</SPAN>系统开发人员<SPAN lang=EN-US>”</SPAN>将发现丰富而强健的<SPAN lang=EN-US> JSF API </SPAN>为他们提供了无与伦比的功能和编程灵活性。<SPAN lang=EN-US>JSF </SPAN>还通过将良好构建的模型<SPAN lang=EN-US>-</SPAN>视图<SPAN lang=EN-US>-</SPAN>控制器<SPAN lang=EN-US> (MVC) </SPAN>设计模式集成到它的体系结构中，确保了应用程序具有更高的可维护性。最后，由于<SPAN lang=EN-US> JSF </SPAN>是通过<SPAN lang=EN-US> Java Community Process (JCP) </SPAN>开发的一种<SPAN lang=EN-US> Java </SPAN>标准，因此开发工具供应商完全能够为<SPAN lang=EN-US> JavaServer Faces </SPAN>提供易于使用的、高效的可视化开发环境。</FONT></P>
<H2 style="MARGIN: auto 0cm"><FONT face=宋体><SPAN lang=EN-US>JSF </SPAN>体系结构</FONT></H2>
<H3 style="MARGIN: auto 0cm"><FONT face=宋体><SPAN lang=EN-US>JavaServer Faces </SPAN>的<SPAN lang=EN-US> MVC </SPAN>实现</FONT></H3>
<P><FONT face=宋体><SPAN lang=EN-US>JSF </SPAN>的<SPAN style="COLOR: red">主要优势之一</SPAN>就是它既是<SPAN lang=EN-US> Java Web </SPAN>用户界面标准又是严格遵循模型<SPAN lang=EN-US>-</SPAN>视图－控制器<SPAN lang=EN-US> (MVC) </SPAN>设计模式的框架。用户界面代码（<B>视图</B>）与应用程序数据和逻辑（<B>模型</B>）的清晰分离使<SPAN lang=EN-US> JSF </SPAN>应用程序更易于管理。为了准备提供页面对应用程序数据访问的<SPAN lang=EN-US> JSF </SPAN>上下文和防止对页面未授权或不正确的访问，所有与应用程序的用户交互均由一个前端<SPAN lang=EN-US>“Faces”servlet</SPAN>（<B>控制器</B>）来处理。<SPAN lang=EN-US> </SPAN></FONT></P>
<P><SPAN lang=EN-US><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id=_x0000_i1025 style="WIDTH: 390pt; HEIGHT: 187.5pt" type="#_x0000_t75" alt=""><v:imagedata o:href="http://www.oracle.com/technology/tech/java/newsletter/articles/introjsf/mvc.jpg" src="file:///D:\DOCUME~1\こ\LOCALS~1\Temp\msohtml1\02\clip_image001.jpg"><FONT face=宋体></FONT></v:imagedata></v:shape></SPAN></P>
<P><FONT face=宋体>图<SPAN lang=EN-US> 1</SPAN>：<SPAN lang=EN-US>JavaServer Faces </SPAN>的<SPAN lang=EN-US> MVC </SPAN>实现</FONT></P>
<H4 style="MARGIN: auto 0cm"><FONT face=宋体><SPAN lang=EN-US>JSF </SPAN>生命周期</FONT></H4>
<P><FONT face=宋体><SPAN lang=EN-US>Faces Controller servlet </SPAN>充当用户和<SPAN lang=EN-US> JSF </SPAN>应用程序之间的纽带。它在明确限定的 <B><SPAN lang=EN-US>JSF </SPAN>生命周期</B>（规定了用户请求之间的整个事件流）的范围内工作。例如，一收到访问<SPAN lang=EN-US> JSF </SPAN>应用程序的初始<SPAN lang=EN-US> Web </SPAN>请求，<SPAN lang=EN-US>Faces Controller servlet </SPAN>便通过首先准备<SPAN lang=EN-US> JSF </SPAN>上下文（存放所有应用程序数据的一个<SPAN lang=EN-US> Java </SPAN>对象）来处理请求。然后控制器把用户指引到所请求的页面。该页面通常使用简单的表达式语言来处理来自<SPAN lang=EN-US> JSF </SPAN>上下文的应用程序数据。一收到后续请求，控制器就更新所有模型数据（假设输入了新数据）。<SPAN lang=EN-US>JSF </SPAN>开发人员可以通过编程的方式在应用程序运行期间随时访问整个<SPAN lang=EN-US> JSF </SPAN>生命周期，从而可以随时对应用程序的行为进行高度控制。</FONT></P>
<H3 style="MARGIN: auto 0cm"><FONT face=宋体><SPAN lang=EN-US>JavaServer Faces </SPAN>的用户界面组件</FONT></H3>
<P><FONT face=宋体><SPAN lang=EN-US style="COLOR: red">JavaServer Faces </SPAN><SPAN style="COLOR: red">的真正威力</SPAN>在于它的用户界面组件模型。在该模型中，应用程序完全用组件集合构建，这些组件可以针对多种客户端类型用不同的方式来进行显示。与其他专有技术（如<SPAN lang=EN-US> ASP.Net</SPAN>）有点类似，<SPAN lang=EN-US>JSF </SPAN>的<SPAN lang=EN-US> UI </SPAN>组件模型技术使开发人员能够使用预先构建的用户界面<SPAN lang=EN-US> (UI) </SPAN>组件来构建<SPAN lang=EN-US> Web </SPAN>用户界面（而非完全从头构建用户界面），从而提供了前所未有的开发效率。<SPAN lang=EN-US>JSF UI </SPAN>组件有多种形式，可以简单到只是显示文本的 <B><SPAN lang=EN-US>outputLabel</SPAN></B>，或者复杂到可以表示来自数据集合（如数据库表）的表格化数据的 <B><SPAN lang=EN-US>dataTable</SPAN></B>。<SPAN lang=EN-US> </SPAN></FONT></P>
<P><FONT face=宋体><SPAN lang=EN-US>JavaServer Faces </SPAN>规范在其参考实施中提供了一组基本<SPAN lang=EN-US> UI </SPAN>组件，这些组件本身是非常有用的。它们包括两个组件库，即<SPAN lang=EN-US>“HTML”</SPAN>组件库<SPAN lang=EN-US> — </SPAN>它大部分映射了标准的<SPAN lang=EN-US> HTML </SPAN>输入元素；以及<SPAN lang=EN-US>“</SPAN>核心<SPAN lang=EN-US>”</SPAN>库<SPAN lang=EN-US> — </SPAN>它辅助常见的应用程序开发任务（如，国际化和验证<SPAN lang=EN-US>/</SPAN>转换输入数据）。除了提供一个基本<SPAN lang=EN-US> UI </SPAN>组件库之外，<SPAN lang=EN-US>JSF API </SPAN>还提供了扩展和创建定制<SPAN lang=EN-US> JSF UI </SPAN>组件的功能，从而在基本组件之上提供更多功能。</FONT></P>
<H3 style="MARGIN: auto 0cm"><FONT face=宋体>其他用户界面组件库</FONT></H3>
<P><FONT face=宋体>由于<SPAN lang=EN-US> JSF API </SPAN>的丰富性和灵活性，许多<SPAN lang=EN-US> Java </SPAN>开发人员开始创建新的<SPAN lang=EN-US> JSF </SPAN>组件库和实现。<SPAN lang=EN-US>Oracle </SPAN>的 <B><SPAN lang=EN-US>ADF Faces</SPAN></B><SPAN lang=EN-US> </SPAN>是一个完全符合<SPAN lang=EN-US> JSF </SPAN>规范的组件库，它为<SPAN lang=EN-US> JSF </SPAN>应用程序开发提供了一组广泛的增强<SPAN lang=EN-US> UI </SPAN>组件。这些组件包括针对每种客户端类型的多种呈现器、高级表格、颜色和日期选择器以及大量通用组件（如菜单、命令按钮、转移选择器和进度指示计）。<SPAN lang=EN-US> </SPAN></FONT></P>
<P><SPAN lang=EN-US><v:shape id=_x0000_i1027 style="WIDTH: 337.5pt; HEIGHT: 331.5pt" type="#_x0000_t75" alt=""><v:imagedata o:href="http://www.oracle.com/technology/tech/java/newsletter/articles/introjsf/UIcomps.jpg" src="file:///D:\DOCUME~1\こ\LOCALS~1\Temp\msohtml1\02\clip_image002.jpg"><FONT face=宋体></FONT></v:imagedata></v:shape></SPAN></P>
<P><FONT face=宋体>图<SPAN lang=EN-US> 2</SPAN>：<SPAN lang=EN-US>Oracle </SPAN>的<SPAN lang=EN-US> ADF Faces JSF UI </SPAN>组件</FONT></P>
<P><FONT face=宋体>除了<SPAN lang=EN-US> Oracle </SPAN>的<SPAN lang=EN-US> ADF Faces </SPAN>之外，还有其他新的<SPAN lang=EN-US> JSF </SPAN>组件库开始从开放源代码社区和软件供应商社区中出现。<B><SPAN lang=EN-US>MyFaces</SPAN></B><SPAN lang=EN-US> </SPAN>就是一个新<SPAN lang=EN-US> JSF UI </SPAN>组件库的例子，它通过<SPAN lang=EN-US> Apache </SPAN>作为一个开放源代码项目提供的。<SPAN lang=EN-US>Myfaces </SPAN>还是对<SPAN lang=EN-US> JSF </SPAN>基本<SPAN lang=EN-US> UI </SPAN>组件的增强，它拥有更广泛的<SPAN lang=EN-US> UI </SPAN>功能，如集成的<SPAN lang=EN-US> Tiles </SPAN>支持、支持<SPAN lang=EN-US> Javascript </SPAN>的菜单和树控件。</FONT></P>
<P style="TEXT-ALIGN: center" align=center><SPAN lang=EN-US><v:shape id=_x0000_i1028 style="WIDTH: 345pt; HEIGHT: 276pt" type="#_x0000_t75" alt=""><v:imagedata o:href="http://www.oracle.com/technology/tech/java/newsletter/articles/introjsf/myfaces-sm.jpg" src="file:///D:\DOCUME~1\こ\LOCALS~1\Temp\msohtml1\02\clip_image003.jpg"><FONT face=宋体></FONT></v:imagedata></v:shape></SPAN></P>
<P style="TEXT-ALIGN: center" align=center><FONT face=宋体>图<SPAN lang=EN-US> 3</SPAN>：开放源代码的<SPAN lang=EN-US> MyFaces </SPAN>实现和<SPAN lang=EN-US> UI </SPAN>组件库</FONT></P>
<H3 style="MARGIN: auto 0cm"><FONT face=宋体><SPAN lang=EN-US>JSF UI </SPAN>组件的可插入呈现技术</FONT></H3>
<P><FONT face=宋体><SPAN lang=EN-US>JSF UI </SPAN>组件技术最引人注目一个方面就是它的可插入呈现功能。<SPAN lang=EN-US>JSF UI </SPAN>组件能够根据查看组件的客户端的类型来以不同方式呈现自身。例如，<SPAN lang=EN-US>HTML </SPAN>浏览器将看到特定<SPAN lang=EN-US> UI </SPAN>组件的<SPAN lang=EN-US>“HTML </SPAN>浏览器友好<SPAN lang=EN-US>”</SPAN>版本，而支持无线或<SPAN lang=EN-US> WAP </SPAN>的微型设备将看到<B>同一</B><SPAN lang=EN-US> UI </SPAN>组件的<SPAN lang=EN-US>“WML </SPAN>友好<SPAN lang=EN-US>”</SPAN>版本！<SPAN lang=EN-US>JSF </SPAN>通过解除<SPAN lang=EN-US> UI </SPAN>组件与其呈现逻辑之间的耦合从而能够为同一<SPAN lang=EN-US> UI </SPAN>组件创建多个呈现器实现了这一功能。不同的呈现器可以与<SPAN lang=EN-US> UI </SPAN>组件相关联，在运行时<SPAN lang=EN-US> UI </SPAN>组件可以根据请求的客户端类型决定使用哪个呈现器。</FONT></P>
<P><SPAN lang=EN-US><v:shape id=_x0000_i1029 style="WIDTH: 450pt; HEIGHT: 248.25pt" type="#_x0000_t75" alt=""><v:imagedata o:href="http://www.oracle.com/technology/tech/java/newsletter/articles/introjsf/pluggable2.jpg" src="file:///D:\DOCUME~1\こ\LOCALS~1\Temp\msohtml1\02\clip_image004.jpg"><FONT face=宋体></FONT></v:imagedata></v:shape></SPAN></P>
<P><FONT face=宋体>图<SPAN lang=EN-US> 5</SPAN>：一个<SPAN lang=EN-US> ADF Faces </SPAN>表格组件针对无线客户端和<SPAN lang=EN-US> HTML </SPAN>客户端进行了不同的呈现</FONT></P>
<P><FONT face=宋体>还应当指出的是，由于<SPAN lang=EN-US> JSF </SPAN>的可插入呈现功能，使得<SPAN lang=EN-US> JSF UI </SPAN>组件能够显示任何类型的数据，无论它是标记数据（如<SPAN lang=EN-US> HTML</SPAN>、<SPAN lang=EN-US>XML</SPAN>、<SPAN lang=EN-US>WML </SPAN>等）还是二进制数据。例如，<SPAN lang=EN-US>UI </SPAN>组件还可以显示二进制数据，如图像流或不同的文档类型，如<SPAN lang=EN-US> SVG</SPAN>、<SPAN lang=EN-US>PDF </SPAN>和<SPAN lang=EN-US> Word</SPAN>。</FONT></P>
<H3 style="MARGIN: auto 0cm"><FONT face=宋体>一个新的<SPAN lang=EN-US> JSF </SPAN>组件开发人员社区</FONT></H3>
<P><FONT face=宋体>随着<SPAN lang=EN-US> JSF </SPAN>开发人员和拥护者社区的不断壮大，现在有几个网站致力于进一步推动独立的<SPAN lang=EN-US> JSF </SPAN>开发。<B><SPAN lang=EN-US>JSFCentral</SPAN></B><SPAN lang=EN-US> </SPAN>就是一个完全为<SPAN lang=EN-US> JSF </SPAN>开发社区服务的新网站。它包含<SPAN lang=EN-US> JSF </SPAN>技术信息、产品<SPAN lang=EN-US>/</SPAN>组件信息以及大量与<SPAN lang=EN-US> JSF </SPAN>相关的文章。<SPAN lang=EN-US> </SPAN></FONT></P>
<P><SPAN lang=EN-US><v:shape id=_x0000_i1030 style="WIDTH: 184.5pt; HEIGHT: 54pt" type="#_x0000_t75" alt=""><v:imagedata o:href="http://www.oracle.com/technology/tech/java/newsletter/articles/introjsf/jsf_logo.gif" src="file:///D:\DOCUME~1\こ\LOCALS~1\Temp\msohtml1\02\clip_image005.gif"><FONT face=宋体></FONT></v:imagedata></v:shape></SPAN></P>
<P><FONT face=宋体>图<SPAN lang=EN-US> 4</SPAN>：<SPAN lang=EN-US>JSFCentral — </SPAN>一个免费的<SPAN lang=EN-US> Javaserver Faces </SPAN>社区</FONT></P>
<H5 style="MARGIN: auto 0cm"><FONT face=宋体>（<SPAN lang=EN-US>JSFCentral </SPAN>的地址是：<SPAN lang=EN-US><A href="http://jsfcentral.com/" target=_blank>http://jsfcentral.com</A></SPAN>）</FONT></H5>
<H3 style="MARGIN: auto 0cm"><FONT face=宋体><SPAN lang=EN-US>JSF </SPAN>开发工具</FONT></H3>
<P><FONT face=宋体>因为<SPAN lang=EN-US> JavaServer Faces </SPAN>是一种标准的<SPAN lang=EN-US> Java </SPAN>技术，因此软件开发工具完全能够为<SPAN lang=EN-US> JavaServer Faces </SPAN>提供高级的集成开发工具支持。多个供应商现在不同程度地支持<SPAN lang=EN-US> JSF </SPAN>开发，这大大提高了<SPAN lang=EN-US> JSF </SPAN>的易用性和功能。<SPAN lang=EN-US>Oracle</SPAN>、<SPAN lang=EN-US>Sun</SPAN>、<SPAN lang=EN-US>Borland </SPAN>和<SPAN lang=EN-US> IBM </SPAN>都为<SPAN lang=EN-US> JavaServer Faces </SPAN>提供了开发环境。由于开发工具供应商在竞相提供更好、更简单和更多的开发环境，因此基于<SPAN lang=EN-US> IDE </SPAN>的<SPAN lang=EN-US> JSF </SPAN>开发拥有美好的前景！</FONT></P>
<P><SPAN lang=EN-US><v:shape id=_x0000_i1026 style="WIDTH: 450pt; HEIGHT: 225pt" type="#_x0000_t75" alt=""><v:imagedata o:href="http://www.oracle.com/technology/tech/java/newsletter/articles/introjsf/JSF_IDE.jpg" src="file:///D:\DOCUME~1\こ\LOCALS~1\Temp\msohtml1\02\clip_image006.jpg"><FONT face=宋体></FONT></v:imagedata></v:shape></SPAN></P>
<P><FONT face=宋体>图<SPAN lang=EN-US> 6</SPAN>：<SPAN lang=EN-US>Oracle </SPAN>的<SPAN lang=EN-US> JDeveloper </SPAN>提供高效、可视化的<SPAN lang=EN-US> JSF </SPAN>开发体验</FONT></P>
<H2 style="MARGIN: auto 0cm"><FONT face=宋体>总结</FONT></H2>
<P><FONT face=宋体><SPAN lang=EN-US>JavaServer Faces </SPAN>通过提供模型<SPAN lang=EN-US>-</SPAN>视图<SPAN lang=EN-US>-</SPAN>控制器设计模式的一个简洁实现，同时在不牺牲开发能力和灵活性的前提下提供高效的以组件为中心的开发，解决了<SPAN lang=EN-US> Java Web </SPAN>开发的许多历史问题。此外，因为<SPAN lang=EN-US> JSF </SPAN>是一种<SPAN lang=EN-US> Java </SPAN>标准，因此多个软件供应商将继续提供始终高效的开发环境，这些开发环境毫无疑问将达到或很可能超过专有的可视化开发环境。请继续关注！</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P><img src ="http://www.blogjava.net/huguyue/aggbug/17189.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huguyue/" target="_blank">guyue</a> 2005-10-28 15:55 <a href="http://www.blogjava.net/huguyue/archive/2005/10/28/17189.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF与Struts的异同</title><link>http://www.blogjava.net/huguyue/archive/2005/10/28/17186.html</link><dc:creator>guyue</dc:creator><author>guyue</author><pubDate>Fri, 28 Oct 2005 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/huguyue/archive/2005/10/28/17186.html</guid><wfw:comment>http://www.blogjava.net/huguyue/comments/17186.html</wfw:comment><comments>http://www.blogjava.net/huguyue/archive/2005/10/28/17186.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huguyue/comments/commentRss/17186.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huguyue/services/trackbacks/17186.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JSF与Struts的异同板桥里人 http://www.jdon.com 2005/09/05　　Struts和JSF/Tapestry都属于表现层框架，这两种分属不同性质的框架，后者是一种事件驱动型的组件模型，而Struts只是单纯的MVC模式框架，老外总是急吼吼说事件驱动型就比MVC模式框架好，何以见得，我们下面进行详细分析比较一下到底是怎么回事？　　首先事件是指从客户端页面（浏...&nbsp;&nbsp;<a href='http://www.blogjava.net/huguyue/archive/2005/10/28/17186.html'>阅读全文</a><img src ="http://www.blogjava.net/huguyue/aggbug/17186.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huguyue/" target="_blank">guyue</a> 2005-10-28 15:47 <a href="http://www.blogjava.net/huguyue/archive/2005/10/28/17186.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>