JSP和JSF合并 打造完美的Web层应用

上传人:飞*** 文档编号:43609794 上传时间:2018-06-07 格式:DOC 页数:7 大小:57KB
返回 下载 相关 举报
JSP和JSF合并 打造完美的Web层应用_第1页
第1页 / 共7页
JSP和JSF合并 打造完美的Web层应用_第2页
第2页 / 共7页
JSP和JSF合并 打造完美的Web层应用_第3页
第3页 / 共7页
JSP和JSF合并 打造完美的Web层应用_第4页
第4页 / 共7页
JSP和JSF合并 打造完美的Web层应用_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《JSP和JSF合并 打造完美的Web层应用》由会员分享,可在线阅读,更多相关《JSP和JSF合并 打造完美的Web层应用(7页珍藏版)》请在金锄头文库上搜索。

1、Java 在最近几年逐渐升温,随着 Java SE 5 和 Java SE 6 的推出,Java 的未来更显得无比辉煌。但以 Java 为基础的 JSP 在 Java SE 5 推出之前却一直抬不起头来,这最重要的原因就是 JSP 虽然功能十分强大,但最大的优点也是它的最大缺点,功能强大就意味着复杂,尤其是设计前端界面的可视化工具不多,也不够强大。因此,设计 JSP 页面就变得十分复杂和繁琐. Java 在最近几年逐渐升温,随着 Java SE 5 和 Java SE 6 的推出,Java 的未来更显得无比辉煌。但以 Java 为基础的 JSP 在 Java SE 5 推出之前却一直抬不起头来

2、,这最重要的原因就是 JSP 虽然功能十分强大,但最大的优点也是它的最大缺点,功能强大就意味着复杂,尤其是设计前端界面的可视化工具不多,也不够强大。因此,设计 JSP 页面就变得十分复杂和繁琐。不过,在 Java SE 5 推出的同时,Sun 为了简化 JSP 的开发难度,推出了新的 JavaServer Faces(简称 JSF)规范。从而使 JSP 走上了康庄大道。 一、什么是一、什么是 JSF JSF 和 JSP 是一对新的搭档。JSP 是用于后台的逻辑处理的技术,而 JSF 恰恰相反,是使开发人员能够快速的开发基于 Java 的 Web 应用程序的技术,是一种表现层技术。目前,JSF1

3、.2 已经正式作为一个标准加入了 Java EE 5 中。 作为一种高度组件化的技术,开发人员可以在一些开发工具的支持下,实现拖拉式编辑操作,用户只需要简单的将 JSF 组件拖到页面上,就可以很容易的进行 Web 开发了。这是其作为一种组件化的技术所具有的最大好处,我们能用的组件不光是一些比较简单的输入框之类,还有更多复杂的组件可以使用的,比如 DataTable 这样的表格组件, Tree 这样的树形组件等等。 作为一种标准的技术,JSF 还得到了相当多工具提供商的支持。同时我们也会有很多很好的免费开发工具可以使用,前不久 Sun Java Studio Creator 2 和 Oracle

4、 JDeveloper 10g 作为免费的支持 JSF 的开发工具发布,给 JSF 带来了不小的生气。另外我们也有一些很优秀的商业开发工具可共选择,BEA Workshop (原 M7 NitroX),Exadel,MyEclipse 这样的基于 Eclipse 的插件开发工具,为现在广大的 Eclipse 用户带来了不小的便利,IBM 的 Rational Application Developer 和 Borland 的 JBuilder 也是很不错的支持 JSF 可视化开发的商业开发工具。 JSF 和传统的 Web 技术有着本质上的差别,在传统的 Web 技术需要用户自己对浏览器请求进行

5、捕捉,保存客户端状态,并且手工控制着页面的转向,等等。而 JSF 的出现,无疑给我们带来了巨大的便利,JSF 提供了事件驱动的页面导航模型,该模型使应用程序开发人员能够设计应用程序的页面流。与 Struts 的方式向类似的是,所有的页面流信息都定义在 JSF 配置 XML 文件 (faces-config.xml) 中,而非硬编码在应用程序中。这很大程度简化了开发人员开发难度,简化了应用程序的开发。 同时 JSF 也是一种遵循模型-视图控制器 (MVC) 模式的框架。实现了视图代码(View)与应用逻辑(Model)的完全分离,使得使用 JSF 技术的应用程序能够很好的实现页面与代码的分离。所

6、有对 JSF 页面的请求都会通过一个前端控制器 (FacesServlet) 处理,系统自动处理用户的请求,并将结果返回给用户。这和传统的 MVC 框架并没有太大的区别。 在 JSF 中不仅使用了 POJO 技术,而且还使用了类似 Spring 的控制反转(IoC) (或称为依赖注入-DI) 技术,在 JSF 的 Backing Bean 中,我们可以把视图所需要的数据和操作放进一个 Backing Bean 中。同时得益于 JSF 使用的 DI 技术,我们可以在配置文件中初始化 Managed Bean,同时我们也可以通过这样的技术很方便的和使用类似技术的 Spring 进行整合。 二、如何

7、在二、如何在 JSP 中使用中使用 JSF JSF 只有通过和 JSP 相结合,才能充分发挥它的功效。JSF 是通过标签库和 JSP 进行集成的。标签库就相当于 ASP.NET 的服务端组件。JSF 提供了非常丰富的标签库,通过这些标签库,可以生成各种客户端模型,如 HTML、WML、XML 以及 JavaScript 等。通过这些标签,你可以很容易建立大规模的客户端模型,并由这些标签自动处理客户端请求。 接下来让我们来看一个如何使 JSF 和 JSP 在一起工作的例子。在 JSF 中有两个库。第一个叫做内核库,在这个库中包含了各种主要的标签,如配置组件、管理事件、验证输入信息等。第二个库的主

8、要功能是将 HTML 和 JSF 的各种标签相对应。每一个 JSF 标签都会对应一个 HTML 组件。如 UIInput 标签对应了HTML 中的文本框或密码框。在 JSF 标签中文本输入框叫做 inputText,而密码输入库叫 inputSecret。下面是一个简单的 JSF 和JSP 结合的用户接口程序。% taglib uri=“http:/ prefix=“h“ % % taglib uri=“http:/ prefix=“f“ % html head meta HTTP-EQUIV=“Content-Type“ CONTENT=“text/html;CHARSET=GB2312“

9、title第一个 JSF 程序/title /head body f:view h:form id=“simpleForm“ h:outputText id=“favoriteLabel“ value=“请输入一个数字:“/ h:inputText id=“favoriteValue“ value=“#simple.longValue“ f:validateLongrange maximum=“30“ minimum=“0“/ /h:inputText p/ h:commandButton id=“submit“ value=“提交“ action=“#simple.simpleActionM

10、ethod“/ /h:form /f:view /body /html在上面的代码中,我们可以了解到 JSF 是如何同 JSP 集成的。我们首先可以看到一个内核标签:view。然后是几个 JSF 组件。如 form、outputText、inputText 以及 commandButton。这几个组件被放到form 中从而开成了 form 中的一部分。在程序的最开始,必须使用 import 导入两个标签库。代码如下。 % taglib uri=“http:/ prefix=“h“ % % taglib uri=“http:/ prefix=“f“ %上面 2 行代码声明了 JSP 中要使用哪一

11、个 JSF 标签库。内核库使用前缀(prefix)f 声明,而 HTML库使用前缀(prefix)h 声明。这两个前缀并不是必须要使用,而只是一个建议。在程序中,内核库必须要使用,因为 view 在所有的 JSF 页中必须使用。而 HTML 标签在运行时将 JSF 标签转化为 HTML 组件,这个h 前缀并不是必须的,而是 JSF 规范推荐使用的,这样,我们使我们的 JSF 程序更易读。 在声明后是几行标准的 HTML 语句,本文不再详述。从 f:view 开始,是一段 JSF 语句。这段代码如下所示: f:view h:form id=“simpleForm“ h:outputText id

12、=“favoriteLabel“ value=“请输 入一个数字:“/ h:inputText id=“favoriteValue“ value=“#simple.longValue“ f:validateLongrange maximum=“30“ minimum=“0“/ /h:inputText p/ h:commandButton id=“submit“ value=“提交“ action=“#simple.simpleActionMethod“/ /h:form /f:view/f:view 标签预示着 JSF 的开始,而它的下一个标签 form 将建立一个 HTML Form。而

13、outputText 标签相当于 HTML 中的 label 组件。inputText 标签相当于 HTML 中的 textField 组件。而 commandButton 标签相当于 HTML 中的 submit 按钮。运行这个 JSP 程序,将得到如图 1 所显示效果。 三、三、JSP 如何响应如何响应 JSF 的请求的请求 从上面的例子我们已经知道如何在 JSP 中使用 JSF 了,在这一部分让我们来看看在 JSF 是如何处理请求的。 首先让我们来看一个例子,这个例子是将华氏度转换为摄氏度。当用户点击提交按钮时程序将进行转换。 % taglib uri=“http:/ prefix=“h

14、“ % % taglib uri=“http:/ prefix=“f“ % html head meta HTTP-EQUIV=“Content-Type“ CONTENT=“text/html;CHARSET=GB2312“ title温度转换程序/title /head body f:view h:form div h:outputText id=“fahrenheitLabel“ value=“请输入华氏温度:“/ span h:inputText id=“temperature“ value=“#tc.fahrenheitTemp“ f:validateDoublerange mini

15、mum=“- 100.0“ maximum=“100.0“/ f:valuechangeListener type=“tempconv.page.TCChangedListener“/ /h:inputText /span /div div h:outputText id=“celsiusLabel“ value=“ 摄氏温度:“/ span h:outputText id=“celsiusValue“ value=“#tc.celsiusTemp“ f:convertNumber maxFractionDigits=“3“ type=“number“/ /h:outputText /span /div div h:commandButton value=“转换“ action=“#tc.convert“ /h:commandButton /div /h:form /f:view /body /html在程序的前两行是导入 JSF 核心库和 HTML 库,这个在前面已

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号