JAVA教程之JSF开发(一)
创始人
2024-08-02 04:21:50
0

Java Server Faces(JSF)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标记库。Apache Struts框架的作者Craig McClanahan,协助领导了Sun公司的JSF项目。这使项目能够容易的从流行的Apache向JSF标准移植得到了保证。就像Struts框架一样,JSF定义了一套JSP标记,能够生成与JavaBean属性绑定在一起的HTML表单元素。

从应用开发者的角度看,两种框架是很相似的,但是JSF可能将会得到更多的支持。因为JSF是Java的标准。在未来的发展中,有可能所有的J2EE应用服务器都需要支持JSF(Java Server Faces)。

本文包含一个由四个主要部分组成的网络应用

1. JavaBean类(PBean.java),作为数据模型保存一些文本以及相关属性:字体、大小、 颜色、摆放位置等;

2. 基于JSF的表单(edit.jsp),使用户可以为JavaBean的属性赋值;

3. Java类(PBuilder.java),用给定的文本按照其属性值生成HTML页面程序;

4. JSP页面(view.jsp),显示生成的HTML页面。

JavaServer Faces(或者叫JSF)是服务端程序开发新的发展趋势。它可以使你更轻松的的设计程序,你的程序也能够更容易维护,甚至可能还会使你的工作更有趣。Budi Kurniawan向我们展示了JSF技术,解释了为什么JSF如此有用以及它是否实现了所承诺的功能。

基于JSF的表单

图1:基于JSF的表单

制作JSF表单

当你开发网络应用时,处理HTML表单是最常见的一项任务。一个好的框架能够节省很多开发时间,因为许多日常的程序操作可以自动的完成或是减少到最低限度只需要在XML文件中用几行完成。这也有可能简化使用JSP标记库的网络开发。

Java Server Faces框架提供了JSP标记,用于描述表单、管理表单状态、确认用户输入以及报错、将用户界面组件与JavaBean属性绑定在一起以及其他许多可提高开发效率的功能。JSF也有丰富的编程接口可用于建立定制的用户界面(UI)组件,定制验证类(验证器validator)以及服务端的事件监听器。

JSF包含两类标记库分别叫JSF核心库与HTML基础库。前者提供普通的标记和一些用于在用户界面组件中注册验证器以及事件监听器的标记。后者包含用于描述用户界面组件的JSP标记,如:按钮、文本域、复选按钮、列表等。文件edit.jsp用这些标记建立了表单。两种标记库的标准前缀是f和h,并且定义在edit.jsp文件的最前面:

 

  1. <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"; %>  
  2. <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"; %> 

 

标记是容器标记,必须包含所有在同一页面中出现的JSF标记。该标记不会产生任何HTML内容,但是它会触发JSF的内部机制。标记产生能够包含用户界面元素的HTML元素

 

  1.  
  2.  
  3. Edit 
  4.  
  5.  
  6.  
  7.  
  8. ..........  
  9.  
  10.  
  11.  
  12.  

 

上面的JSP代码生成下面的HTML片断:

  1.  
  2.  
  3. Edit 
  4.  
  5.  
  6.  
  7. ..........  
  8.  
  9.  
  10.  

#p#

下一部分介绍应用的JavaBean模型。

管理Bean

像其他一些Web框架一样,JSF将用户界面从封装数据以及应用逻辑的对象模型中分离出来。当HTML用户界面由JSF标记产生时,JSF框架从JavaBean模型获得数据并设置HTML表单用户界面组件的属性状态。用户提交表单时,JSF验证用户输入,如果全部正常JSF就将用户输入保存到JavaBean模型并且HTTP请求会根据“导航规则”进入下一页面。如果验证出现错误,JSF回到表单并返回错误信息,这样用户就可以纠正错误输入。

类Pbean遵循JavaBean规范,实现了java.io.Serializable并为其属性(文本、大小、字体、颜色、摆放位置、粗体、斜体、下划线)提供了相应的get及set方法。JSF每一个应用的用户都创建了一个PBean的实例,该实例存储在JSP的会话(session)中并在名为faces-config.xml的XML格式配置文件中指定ID。JSF也会根据faces-config.xml文件提供的数据初始化JavaBean实例的属性值。该XML文件还可能包含其他JSF配置参数,如:导航规则。

下面的XML程序片断包含由JSF所管理的JavaBean的声明:

 

  1.  
  2. "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"  
  3. "http://java.suncom/dtd/web-facesconfig_1_0.dtd";> 
  4.  
  5. ..........  
  6.  
  7. pbean 
  8.  
  9. com.devsphere.articles.usingjsf.PBean  
  10.  
  11. session 
  12.  
  13. text 
  14.  
  15.  
  16.  
  17. size 
  18. 3 
  19.  
  20.  
  21. font 
  22.  
  23. Arial 
  24. Courier New 
  25.  
  26.  
  27.  
  28. color 
  29. green 
  30.  
  31.  
  32. align 
  33. left 
  34.  
  35.  
  36. bold 
  37. false 
  38.  
  39.  
  40. italic 
  41. true 
  42.  
  43.  
  44. underline 
  45. false 
  46.  
  47.  
  48.  

 

由JSF创建的管理bean能够根据元素的值而存储在请求(request)、会话(session)或应用的范围内。元素的值可为空值。如果一个对象已经指定了ID并注册在给定的范围内那么JSF不会建立JavaBean实例。

注:

源代码下载地址:http://www.onjava.com/onjava/2003/09/03/examples/usingjsf-src.zip

相关文档

原文:Introducing JavaServer Faces(http://www.onjava.com/pub/a/onjava/2003/07/30/jsf_intro.html)

译文:http://www.matrix.org.cn/forum_view.asp?forum_id=14&view_id=658

【编辑推荐】

  1. JSF理解组件和客户端标识符
  2. JSF文件在web.xml中启动异常
  3. JSF表格组件的制作思路(含源代码)
  4. MyEclipse开发JSF之创建工程浅析
  5. Java学习笔记-JSF

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...