JSF ,java Server Faces,他与struts一样都是web应用框架,但他们是两种不同性质的框架!struts只是单纯的MVC模式框架(MVC就不用多解释了吧,j2ee常见的设计模式),而JSF是一种事件驱动型的组件模型!
大家都知道应用程序的开发有两种B/S(浏览器/服务器)和C/S(客户端/服务器端),JSF就是将C/S开发中的界面引入了B/S开发中,然后为界面上的每一个控件都提供事件侦听器!通过JSF,可以在网页上使用WEB组件来捕获用户行为产生的事件.使用JSF开发web程序将与开发swing程序类似,可以拖放控件!
下面就仔细分析一下JSF和struts的不同:
对于从客户端页面(浏览器)由用户操作触发的事件,struts使用ACTION来接受,这里使用了COMMAND模式,而且每个继承action的子类都必须时间execute方法.在struts中,实际是一个表单FORM对应一个action类,换句话说,在struts中一个表单只能对应一个事件!
struts重要的表单对象actionForm代表了一种应用,这个对象中至少包含几个字段,这些字段是JSP页面表单中的input字段.因为一个表单对应一个事件,所以,当我们需要将事件粒度细化到表单中这些字段时,也就是说,一个字段对应一个时间时,单纯使用struts就不太可能,这时就要通过结合javaScript才可以实现.而这种情况使用JSF就可以方便实现!
JSF为web应用的用户界面设立了标准的框架.他可以方便地开发这样的web应用,他们运行在java服务器上,把用户界面传递到客户端.JSF通过控制servlet和具有事件处理和组件加工的丰富的组件模型管理WEB应用生命周期!

本文出自:http://xp9802.iteye.com/blogs/1214254 ,转载时请务必保留此出处