Java Server Faces建立交互式WEB站点

server|web|交互|站点

    在创建交互式网络应用方面,Java Server Faces(以下建成为JSF)相对于诸如Java Server Pages或Apache Struts等同类技术而言拥有很多优势。JSF十分清晰地分离了应用逻辑层与用户界面表示层,提高了网络应用软件的维护能力,JSF同时还提供了一个架构用于开发和重用网络用户界面组件。

  很多网络应用程序的开发者正在转移到JSF上来,但他们同时也发现预定义的JSF用户界面组件受到DHTML功能的限制。一些高级应用,例如监控或商务进程监测,需要和JSF架构兼容的高级视觉组件。
  在JSF架构的标准之上开发自定义的用于网络图形用户界面的组件是一件轻松的事情,这些组件可以被应用程序员重用。而且,网络组件的开发者现在可以提供更加复杂的组件,同时可以保证开发者可以轻松的享受这些组件带来的优势和便利。这些JSF用户界面组件必须简洁地整合与部署到JSF运行时架构,而且在应用软件设计过程中,还要较好地整合到提供JSF支持的集成开发环境(IDE)中

  除了JSF自带的基本的用户界面架构之外,在第一次开发自定义组件的时候,开发者还会遇到一些缺陷和障碍。在这篇文章当中,我们将要介绍如何构建图形化的JSF组件,这种组件使用纯HTML是非常难以实现的。图形化JSF组件的特色之处在于,不仅需要生成DHTML,而且还需要一些额外的图形生成与客户端交互的支持。我们将使用一个图表组件的例子来演示,这个图表组件是用来提供图表和各种客户端的浏览与交互功能。最后,将展示如何将图表组件整合到支持JSF的集成开发环境中。在理解了这个图表组件的设计过程之后,开发者将对如何实现图形化的JSF组件有更深入的理解,希望能够对他们开发自定义的JSF图形组件有所帮助。

什么是Java Server Faces?

  JSF是一个标准的服务器端架构,用于简化网络应用软件表示层的构建。开发人员可以组装这些可复用的用户界面组件来创建网页,将这些组件绑定到应用程序的数据源,并利用服务器端的事件处理器来处理客户端事件。依据JSF规范,组件开发者所制作的组件可以简洁地整合到JSF运行时架构,而且在应用软件设计过程中,还可以整合到与JSF兼容的集成开发环境中。JSR 127规范定义了这样的JSF架构,还同时提供了比如输入栏和按钮等基本用户界面组件的可供参考的实现。JSF组件中的绝大部分都符合HTML 2.0标准中的HTML组件和标签的规范。这些相对简单的组件对于很多网络应用程序来讲已经足够了。

  然而,很多应用程序,比如监控或监测系统,需要更复杂的数据表示与交互,例如图表、图示和映射等。因为在HTML中直接生成复杂图形的能力有限,所以设计这些高级组件也并不直观。一种解决方案就是让服务器端的组件将图片传送到客户端,然而,这会带来它自身的问题因为最基本的HTML的图片交互功能是很有限的。所以,最后必须使用JavaScript来实现用户的数据浏览与交互功能。

创建简单的JSF组件

  本文将这部分将描述一个非常简单的JSF组件的开发步骤,这个组件的功能是将CSS导入到一个HTML的网页上。这个简单组件的描述和代码将作为基础知识,为下一部分继续讲解高级JSF图表组件打下基础。

图1 展示了如何使用组件及其结果

                                              图1

     使用这一组件的好处在于,只要通过JSF动作去改变组件的设定值就能够改变整个页面的外观。

     一个JSF组件由一些Java类和配置文件组成,为了创建一个自定义的JSF组件,开发人员需要:

        1. 编写一个扩展JSF基础组件类的Java类
        2. 为默认的渲染工具编写一个渲染器
        3. 编写一个Java类来描述标签,这个标签将用于JSP页面
        4. 编写一个标签库定义文件
        5. 编写一个JSF配置文件

步骤1:开发组件的Java类

  组件类将负责管理代表组件状态的属性,因此,我们必须根据组件的行为(如输入组件或输出组件),为组件选择适当的基类。

  在列表A中描述的组件扩展了javax.faces.component.UIOutput,以显示指向某个样式表文件的URL,或内联式样式表的内容。

列表A
import javax.faces.component.*;
public class CSSComponent extends UIOutput {
private Boolean link;
public String getFamily() {
return "faces.CSSFamily";
}
public boolean isLink() {
if (link != null)
return link.booleanValue();
ValueBinding vb = getValueBinding("link");
if (vb != null) {
Boolean bvb = (Boolean) vb.getValue(FacesContext.
getCurrentInstance());
if (bvb != null)
return bvb.booleanValue();
}
return false;
}
public void setLink(boolean link) {
this.link = new Boolean(link);
}
public Object saveState(FacesContext context) {
return new Object[] { super.saveState(context), link };
}
public void restoreState(FacesContext context,
Object stateObj) {
Object[] state = (Object[]) stateObj;
super.restoreState(context, state[0]);
link = (Boolean) state[1];
}
}

     代码中“关联”的属性规定了值的类型:要么是一个URL,要么是内联样式。该组件还必须能够在向服务器发送请求期间,使用经过JSF架构处理过的对象,来存储并恢复自己的状态。JSF架构自动调用saveState和restoreState方法,我们可以在组件中实现这两种方法来达到这一目标。

[1] [2] 下一页  

时间: 2024-07-31 18:49:50

Java Server Faces建立交互式WEB站点的相关文章

建立Web站点

web|站点 现在我们来建立一个Web站点,再开启你的Visual InetDev程序,点击File>>New Project,选择Visual InerDev Project>>New Web Project,将Name改为Chapter2,然后点击"打开"按钮. 此时Web Project Wizard对话框出现了,Web Project Wizard的操作共分四步,现在你可以选择或者输入你要连结的Web服务器地址,使用IP地址或者域名都可以,需要注意的是,

Windows网络服务架构系列课程详解(三) Web站点的部署方案

实验背景: WWW(word wide web)服务,即万维网服务,指在网上发布的,并可以通过浏览器观看的图形界面的服务.万维网服务是通过建立Web站点来实现的. 在信息技术高速发展的今天,Internet之所以如此风行,WWW服务功不可没.因为它操作简单,界面魅力十足,可用来联机购物.买书.看电影.听广播.看电视.玩游戏.找工作.查资料等.各大公司也通过Web站点提供售前售后服务,这种良性的互动行为,直接提升了整体信息环境的便利性和普及性. 常用的WWW服务软件,在Windows系统中是IIS

在Win2k下建立虚拟Web主机_服务器

在一台Windows 2000 Server服务器上是不是可以建立多个WWW服务器,而且各自有自己的域名?答案当然是肯定的.其实这就是在一块网络适配器上绑定多个IP地址,再通过多个IP地址建立不同的Web站点并为它们指定域名(也就是建立所谓的虚拟Web主机).通常情况下,一台计算机有一个IP地址指定给它的网络适配器,但对Web服务器来说,拥有多个IP地址可能会更方便,因为可以同时运行多个站点而不需很麻烦地求助于主机头文件(这个头文件指定你用一个IP地址运行多个站点).笔者在此简单地介绍一下,如何

智能交通之路-查阅Web站点,移动应用,开放数据和APIs获得公共交通相关信息

简介:由于像 Google Map 和能够许多能够提供大城市公共交通数据的 Web 站点的存在,搭乘公交车 上下班 -- 或者来往于机场.商场或者球场公园 -- 变得比以往更加容易.Scott Davis 介绍了如何 利用那些可以帮助公共交通变得更加智能的技术来指导您如何去您想去的地方. 公共交通减少了交通拥挤和由此产生的污染.同时还降低了用户的压力水平和需要支付的费用.现在 许多 Web 站点和移动应用程序帮助全球各个城市的乘客,购物者和游客成为合乎道德的利己者,帮助他 们利用交通选项.本文将

一个IP建多个Web站点——TCP端口法

由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS5中,我们可能通过简单的设置达到这个目标. 在IIS中,每个 Web 站点都具有唯一的.由三个部分组成的标识,用来接收和响应请求: (1)IP地址 (2)端口号 (3)主机头名 在IIS中,在一个IP地址上建立多个独立的web站点,通常有两种方法,本文以以例子的形式介绍TCP端口法. 环境:假设某公司的内部网由一台win2000服务器和几十台工作站组成,这个内部网的网段是192.168.1.0/24,服务器的地址是192.1

WinNT/2K Web站点安全解决方案

用NT(2000)建立的WEB站点在所有的网站中占了很大一部分比例,但NT的安全问题也一直比较突出,使得一些每个基于NT的网站都有一种如履薄冰的感觉,然而微软并没有明确的坚决方案,只是推出了一个个补丁程序,各种安全文档上对于NT的安全描述零零碎碎,给人们的感觉是无所适从.于是,有的网管干脆什么措施也不采取,有的忙着下各种各样的补丁程序,有的在安装了防火墙以后就以为万事大吉了.这种现状直接导致了大量网站的NT安全性参差不齐.只有极少数NT网站有较高的安全性,大部分网站的安全性很差.为此,瑞星公司决

建立安全的Web站点

web|安全|站点 在讨论Web站点安全之前,了解Web的技术原理,对于Web安全工作者而言应该是有益处的. 一.Web技术简介World Wide Web称为万维网,简称Web.它的基本结构是采用开放式的客户/服务器结构(Client/Server),分成服务器端.客户接收机及通讯协议三个部分.服务器结构中规定了服务器的传输设定.信息传输格式及服务器本身的基本开放结构.Web 服务器是驻留在服务器上的软件,它汇集了大量的信息.Web服务器的作用就是管理这些文档,按用户的要求返回信息.客户机系统

利用JSP建立Web站点

js|web|站点 JSP是由Sun微系统公司于1999年6月推出的一项技术,是基于JavaServlet以及整个java体系的Web开发技术,利用这一技术可以建立先进.安全和跨平台的动态网站. JSP 与ASP非常相似.两者都提供在HTML 代码中混合某种程序代码.由语言引擎解释执行程序代码的能力.在ASP或JSP 环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑.ASP下的编程语言是 VBScript 之类的脚本语言,而JSP 使用的是Java. TRS及其Jav

建立安全的Web站点(2)

web|安全|站点 4.公共网关接口介绍(CGI) 在讨论Internet和Web技术给人们提供潇洒服务的同时,不能不提到CGI(Common Gateway Interface).它是Web服务器与外部应用程序之间交换数据的标准接口软件.有了CGI,Web网站将不只是静态页面的收藏点,而是可以通过在Web服务器上运行一定的程序,输出一个动态的页面.CGI是一种独立于语言的接口,CGI程序可以使用任何可以访问环境变量和产生输出的编程语言来编写,有C.C++.PERL.Shell等. CGI与We