javaee笔记(10)JSF

介绍

JSF,即Java Server Faces,是JPC(Java Community Process)推出的一种基于组件构建Web应用的新技术,它能让开发工具拥有可视化拖曳组件构建服务端Web页面,并为组件提供事件编程机制。JDK5后JSF被正式纳入Java EE规范。
JSF提供了一种以组件为中心来开发Java Web用户界面的方法,简化了Web应用开发的复杂性。在开发工具的支持下,应用开发可以简单到只需将UI组件拖放到页面上,然后利用丰富而强健的JSF API为他们添加丰富的功能即可。
JSF遵循结构良好的MVC(模型一视图一控制器)设计模式,确保了应用程序具有更高的可维护性。
本质上,JSF是一种基于Java构建Web应用程序的服务端用户接口(UI)组件框架。它定义了一套UI组件和一套标准的API。所有UI组件都可以直接用在网页里,而且大部分组件几乎都是HTML form系列标记的翻版。
JSF API为组件提供了强大的功能。与组件关联的验证器能进行数据验证和完成前后台数据传送。点击链接或按下按钮时会触发事件,以便通过事件处理代码改变其他组件的状态或运行某段后台程序。利用导航机制,可以方便地控制页面的跳转。
JSF结合了第三方开源框架Struts和Swing的优点,得到了众多开发工具提供商和应用开发者的认可。

工作原理

JSF为UI组件声明了它们可能发生的事件(诸如数值改变、按下按钮等),并配置处理该事件的监听器。
UI组件可以搭配不同的渲染器(renderer)从而呈现不同的外观。
JSF通过辅助性的工具,如验证器(validator)、转换器(converter)等对前/后台数据执行验证和类型转换 。
在这里插入图片描述
JSF应用是事件驱动的。用户动作引发页面中预置的事件,从而触发监听器处理代码的执行。实际上,在事件发生时(如用户单击了一个按钮),相应的事件消息通过HTTP发往了服务器,然后由服务器端名为FacesServlet的特殊Servlet对该事件进行处理

JSF请求总是交由FacesServlet来处理,这是在Web应用的部署描述文件web.xml中指定的。在JSF应用的web.xml中有一个Servlet和一个Servlet-mapping标签。类似于下面的代码:

<Servlet>
   <Servlet-name>FacesServlet</Servlet-name>
   <Servlet-class>javax.faces.webapp.FacesServlet</Servlet-class>
   <load-on-startup>0</load-on-startup>
</Servlet>
<Servlet-mapping>
   <Servlet-name>FacesServlet</Servlet-name>
   <url-pattern>*.faces</url-pattern>
</servlet-mapping>

这段代码中的servlet-mapping标签中的url-pattern元素表明,所有请求的URL对应的JSP文件都要改用.faces作为扩展名

JSF的组成

JSF应用也需要运行在Servlet容器中,通常包含以下几个组成部分:
包含UI标签的页面(JSP页面);
辅助Bean类,用于传递数据和执行处理;
验证器、转换器、事件监听器;
其它JavaBean组件;
应用配置文件(web.xml、faces-config.xml)。

JSF类库JSF技术实现者(提供商)提供,以JAR包提供,需要在自己的Web应用中导入。
SUN官方JSF参考实现提供了一组基本的UI组件,包括两个组件库:HTML组件库和Core库,前者映射了标准的HTML输入元素,后者提供辅助开发处理(如国际化、验证、数据转换等)。JSF API还允许扩展和创建定制UI组件。
还有不少第三方JSF实现,如Oracle的ADF Faces就是一个完全符合JSF规范的功能更强大的JSF实现库,包括多种呈现器、高级表格、颜色和日期选择器以及菜单、命令按钮、转移选择器和进度指示等)。
由Apache开源社区推出的MyFaces也是一个不错的JSF实现库,它对JSF基本UI组件进行了增强,如集成了Tiles支持、支持JavaScript菜单和树控件等。

JSF开发步骤

不管是否使用IDE开发环境,使用JSF框架开发Web应用通常遵循以下三个步骤:
(1) 视图设计
利用开发工具,可视化地快速构建Web用户界面,并将页面组件与后台JavaBean绑定。
(2) 模型设计
JSF框架实现了应用程序逻辑和表示的完全分离。在模型设计部分是编写称为辅助Bean(又叫受管Bean)的JavaBean,完成应用的相关业务逻辑代码。
手工部署JSF应用时,需要将编译好的JavaBean类放到Web应用的WEB-INF\classes目录下(Tomcat环境);利用RAD开发工具(如MyEclipse),则通常会自动把实现了业务逻辑的JavaBean类及相关JAR包自动部署到服务器的相关位置。
(3) 控制器设计
JSF的控制器由web.xml和faces-config.xml两个配置文件(均在WEB-INF目录下)完成。web.xml文件用于设置应用主控制器;Faces-config.xml文件设置页面导航,控制页面间的跳转流程。
在MyEclipse中,配置文件的设计基本上由工具自动完成,即使手工配置也是非常简单的。

1:22开始

猜你喜欢

转载自blog.csdn.net/feiqipengcheng/article/details/106438577
jsf
今日推荐