web------JSF

  • 富互联网应用程序 (AJAX)
  • 基于组件的 Web 客户端 (JSF)
  • 基于动态标记的 Web 客户端 (JSP)
  • 桌面集成客户端 (Swing) 

JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。JavaServer Faces 还引起了广大 Java/Web 开发人员的兴趣。“企业开发人员”和 Web 设计人员将发现 JSF 开发可以简单到只需将用户界面 (UI) 组件拖放到页面上,而“系统开发人员”将发现丰富而强健的 JSF API 为他们提供了无与伦比的功能和编程灵活性。JSF 还通过将良好构建的模型-视图-控制器 (MVC) 设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。最后,由于 JSF 是通过 Java Community Process (JCP) 开发的一种 Java 标准,因此开发工具供应商完全能够为 JavaServer Faces 提供易于使用的、高效的可视化开发环境。

web------JSF

 

JavaServer Faces(也称作 JSF,或简称为“Faces”)是一个用于构建 Web 应用程序的基于组件的框架,该框架并入了 JavaBean 事件模型,用于将信息发送到其他组件。

作为 J2EE Web 技术的发展,JavaServer Faces 将基于模板的编程式 Web 开发与 4GL 类型的开发选项结合在一起。

 

JavaServer Faces 可以作为独立的 Servlet 在 J2EE1.4 应用服务器中使用。 Web 并非为需要事务和状态处理的业务应用程序而设计。开发人员花费了大量时间使用各种技术(如隐藏的 HTML 域、cookie、URL 或会话参数)来跟踪 Web 应用程序的状态,而这样做仅仅为了克服 HTTP 协议无状态这个问题。JavaServer Faces 有助于开发人员重新关注应用程序的业务要求,而不再关注基础的交付技术。JavaServer Faces 是一个 UI 框架,它对应用程序开发人员隐藏了 HTTP 请求 – 响应循环的细节。与 Swing 中的 JavaBean 体系结构相似,JavaServer Faces 使用通过属性公开状态和行为的 UI 组件来构建 Web 界面。尽管 JavaServer Faces 页面通常汇集在 JSP 文件中,但这并不是必需的。JSF 这项技术并非只可用于基于浏览器的应用程序,同时也可用于构建移动应用程序。JavaServer Faces 中的 UI 组件是显示不可知的。这意味着应用程序开发人员并不构建针对特定设备的应用程序,而是构建可以在许多设备上运行的应用程序。JSF 中的 UI 组件呈现器类(打包的呈现器集的一部分)决定 UI 的可视化表示。如果初始应用程序请求来自 Web 浏览器,则该表示采用 HTML 格式,否则应用程序将按照请求客户端设备所支持的方式呈现(假设该设备类型存在一组呈现器类)。

类似文本域这样的 UI 组件通过 ExpressionLanguage (EL) 值绑定绑定到 (JSF) 管理的 bean 模型上。在值绑定中,EL 用于引用辅助 bean 中的 setter 和 getter 方法对。例如,EL 表达式 #{users.firstname} 将 JSF 组件绑定到用户 bean 中的 setFirstname 和 getFirstname 方法上。EL 绑定另一个可能的形式是方法绑定。方法绑定引用受管理 bean 中的方法,并在 JSF 中(就像在按钮中一样)用于将操作属性绑定到视图层逻辑,以便在复杂导航情形下或者在需要导航前和导航后处理的情况下执行。

 

受管理 bean 的另一个角色是将 UI 组件绑定到域数据,例如访问 JDBC 查询的结果集或查找 Enterprise JavaBean (EJB) 会话。此外,页面上的 UI 组件可能在辅助 bean 中包含一个用于以编程方式访问的表示。

 

Oracle 应用程序开发框架 (ADF) 和 JavaServer Faces:

Oracle ADF 可用于通过声明方式将 JavaServer Faces 和 ADF Faces 组件绑定到业务服务数据,使用 Oracle ADF 绑定为 JavaServer Faces Web 应用程序开发人员提供了一个统一的开发 API,用于访问 Web 服务、Enterprise Java Bean、TopLink、POJO、ADF 业务组件以及其他类型的业务服务。

ADF Faces 是一组基于 JavaServer Faces API 构建并可以部署到任何 JSF 实现(如由 Sun 或 Apache MyFaces 提供的参考实现)的 100 多个 JSF UI 组件的总称。除了适用于浏览器客户端的 HTML 呈现器工具包以外,ADF Faces 还为在 telnet 客户端、移动设备和 PDA 上显示的 Web 应用程序提供了呈现器,并支持作为显示不可知 Web 应用程序开发环境的 JavaServer Faces 的强大功能。

为将 ADF 与 JavaServer Faces 应用程序集成,表达式语言值绑定访问 ADF 绑定对象,而非辅助 bean 中的数据。ADF 绑定对象(默认情况下名为“bindings”)由 ADF servlet 在应用程序初始化过程中创建,并使开发人员能够访问通过 ADF 数据控件和绑定层公开的所有集合和方法。

要以编程方式引用和使用辅助 bean 中的 ADF 绑定对象,可以通过 faces 配置中的 ExpressionLanguage 表达式 #{bindings} 访问绑定对象并将其作为受管理属性的值注入到辅助 bean 中。

 

 

第一步,创建web工程

 

J2ee下创建web project,这没什么说的了,不过以前在eclipse中总是不知道怎么创建web应用,够傻的,原来需要插件,在myeclipse提供了全套的插件。不过Myeclipse需要**。中国程序员似乎很少用正版的。言归正传,Myeclipse中需要在Open Perspective中选择J2ee enterprse视图。然后创建web project。这跟delphi的New一个project不太一样,delphi把所有可以new的都放在一个窗口中,而eclipse有不同的视图来提供管理,这算一种进步吧,插件化的进步。接下来需要 Add JSF Capability,因为这个类库(不知道是否应该称为类库)支撑了JSF开发需要的组件。

 

第二步,创建bean

 

在New-àother中的Myeclipse-àweb-JSF下有managed bean,创建bean可以连Java类文件一起创建,且可以将需要的属性一起完成,myeclipse可以自动完成属性的get,set方法。是个比较酷的功能。

 

第三步,创建,编辑jsp文件

 

在工程的webroot-->web-inf下面有一个facesconfig.xml文件,这个文件是Javabean的管理文件,同时它管理了页面之间的切换关系,起到导航页面的作用。有趣的是这个文件居然有个漂亮的design界面,可以在上面创建新的jsp文件,且可以用拖拽方式定义页面之间的关系,让所有页面的关系看起来很直观。感觉这里是个很酷的设计。页面的导航是根据一个字符串来作为判断依据的,所以在配置导航关系时,只要设定From outcome的值为调用bean方法的返回值即可。值得注意的是,JSF对于导航值只允许string类型。

 

Jsp页面的编写其实很方便,即使不太懂,因为myeclipse提供了拖拽式的页面设计,如果熟练直接写代码也很好玩吧。我以前一直很讨厌html的代码,因为觉得太机械了,且不好记忆,这会得硬着头皮学了,不过在这种拖拽式的设计中可以省不少力气。记得jsp中使用Java采用”<% %>”的方式,这会是:”#{}” 直接以bean来调用。

 

第四步,本地化

 

如果需要考虑国际化的问题,那么需要创建一个.properties的文件,否则可以跳过这里。.properties文件需要创建到源码文件的目录下,否则在指定位置时便会找不到它。.properties文件的配置非常简单,如同一个ini文件。如:"username=user name", 如果要显示中文的话,这里需要转化为unicode,jdk带了一个native2ascii的小工具可以轻松转换,不过这个玩意每次复制的时候都要先将编辑设为“标记”。不知道有没有更方便的工具。另外如果要支持中文的.properties文件需要以_zh_CN结尾才行。在jsp文件中使用下面形式定义:

 

 

 

然后就如同Java中的类一样使用了

 


不知道为什么,我的myeclipse中输入msg.时不能出现代码提示。

 

第五步,调试,运行

 

启动tomcat,输入url就可以运行了。不过文件的后缀不能是.jsp,必须为.faces.