JSF全称是Java Server Faces.他本身是属于Java EE的规范之一.
他本身也是属于MVC前端框架之一.
现在的JSF有2个实现.就是JSF的H标签.
第一个实现:是sun公司提供的一个参考实现,Reference Implementtation,简称 JSF RI.
第二个实现:是Apache组织提供的另一个实现,就是"MyFaces".企业开发一般使用的是MyFaces.
1.思想
思想上来说,现在主流的Struts2,SpringMVC等开源框架都是基于Servlet模型,可称之为传统的"请求--响应"模型的MVC前端框架.
而JSF则是另一种性质.是属于"快速应用开发"--"Rapid Application Development",简称"RAD".可以说JSF是属于"RAD"模型的MVC前端框架.
众所周知,ASP.NET是可以拖拽控件进行开发UI界面,这也是属于RAD模型的开发.而Sun公司当初开发出JSF,其实就是为了对抗ASP.NET的这种RAD开发方式.而事实上,我觉得SUN公司成功了.
对比传统的MVC前端框架,优势如下:
1.允许使用服务器端的业务代码来响应客户端事件.虽然是假象,但对开发者来说是透明的.
2.将页面上的UI组件的值绑定到服务器端的数据模型.
3.跨请求保存和恢复UI状态.
JSF中的UI组件可以直接绑定到服务器端的托管Bean,不需要开发者去了解HTTP细节,不需要开发者去发送一个HTTP请求.通过绑定,可以将UI页面上的某一值绑定到后台的某一个已经GET/SET的属性中,直接供给托管Bean使用.然后开发者可以随意的用页面上的commandbutton的actionListen调用后台的方法,进行数据的存取.
UI组件以事件通信的机制与托管Bean发生交互.而非传统的请求--相应模式.这事JSF最好的一个地方.
2.JSF2.0的改变
JSF2.0中采用了注解和用于导航的新约定,基本上开发者不用再去写茫茫多的配置文件.通过注解,可以让faces-config.xml变得可选.在学习JSF的时候,可以忽略faces-config.xml的配置手段,直接使用注解,将会使开发者轻松很多.
我现在工作中,使用的是Primefaces,PrimeFaces是一个用于提高JSF Web应用程序开发效率的开源类库。见网址:http://www.primefaces.org ,里面有详细的Demo.