public class Student{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
JavaBean,其实就是一个封装类。
JSF
1.如何确保企业应用界面风格统一,并且简易维护
2.如何在企业应用众多的页面间根据业务逻辑实现导航控制
3.如何对用户的输入信息进行校验来确保企业应用的安全
4.如何实现国际化支持以服务全球不同地区的用户
Jsp是一种构建动态Web的应用组件技术,但是JSF却是一种构建动态Web应用的框架技术,它是Java EE 6规范中推荐的Web应用表现层的框架标准。
框架:
从设计角度看,框架是一个可复用的软件架构解决方案,它规定了应用的体系结构,阐明了软件体系结构中各层次内部各层次间及层次内部各组件间的依赖关系、责任分配和控制流程,表现为一组接口、抽象类及其实例之间协作的方法。框架的使用大大降低应用系统的设计难度,确保系统设计的质量。
从软件实现的角度,框架是软件快速实现的基础平台,它包含一组可重用的组件,它使得某一领域内的软件的基础功能和通用流程的实现更加高效便捷,将使得开发人员可以专注于特定业务逻辑,从而大大提高软件的开发效率。
JSF请求处理过程
JSF框架的核心控制组件FaceServlet对请求进行统一处理
一.恢复试图
对于每个JSF请求都对应一个JSF试图。JSF试图其实是一颗UI组件树。
对于每一个JSF请求,JSF框架都会创建一个名为FaceContext的容器,它保存了关于此次JSF请求的所有相关信息。JSF请求处理过程中可以引用FaceContext中的信息,也可以将信息保存在FaceContext中。
二.应用请求值
获取每个组件的当前状态。JSF的UI组件可以分为两类,一类是允许用户输入信息的组件如文本框,检查框等。对于这类组件,请求中的信息将更新到组件树中的对应组件。只是更新到组件,没有更新到Messaged Bean中。还有一类组件是表示用户交互动作的,如按钮等,它所代表的事件信息,在此阶段将被添加到FaceContext中的事件消息队列中,但这些消息通常情况下不会马上处理,而是等到调用应用程序阶段才被响应。
三.处理校验
校验每个组件的当前状态是否合法,对于组件树中的每个UI组件,JSF框架都会调用它的processValidator方法来完成请求值的校验工作。这部分工作其实分为两步:首先进行类型转换,然后在进行输入校验。如果任何一步发生错误消息并被保存在FaceContext中的错误消息队列中,此时组件的validate属性将被标记为false。但是校验处理过程并不会就此终止,而是继续对组件树中的下一个组件进行同样的操作。
当整个组件树中的组件全部校验完成后,JSF框架会检查FaceContext中的错误消息队列是否为空,只有为空的情况下才会进入更新模型值阶段,否则,将直接跳到显示绘制阶段,见错误信息返回给用户
四.更新模型值
UI组件状态与MessageBean的状态进行同步。
五.调用应用
进行消息事件处理。
六.显示响应
绘制结果视图的组件树并输出到客户端;将当前组件树的状态进行保护以便响应之后的请求。