`
anranran
  • 浏览: 29068 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
把JSF从1.1升级到1.2,这个过程中暴漏出JSF的一些不足,如下:

一,原来在1.1下运行很正常的backing bean 不再正常了,调试之后发现有些backing bean 竟然是使用的包级私有的构造函数,但是很纳闷怎么在1.1下正常而1.2下就实例化不了,可能是JSF 1.1 的实现中是利用反射机制进行backing bean的初始化吧,而1.2又改成调用backing bean 的默认构造函数了,所以碰到包级私有构造函数的backin bean 才出现无法实例化的异常吧。

二,JSF提供的组件中的那个SelectOneMenu个人认为有一个不足之处,如果服务器端初始化组件树时候有四个待选项,到了客户端页面通过ajax对待选项进行了修改,比如改成了五个,这中情况下你页面中的所有command类型的组件的方法绑定都会失效,跟踪JSF源码发现这个SelectOneMenu的Render中首先进行了一个个人认为画蛇添足的校验,它首先校验你提交上来的那个值是否在组件初始化时候提供的待选项内,如果不是待选项中的某个则直接生命周期最后阶段并忽略了中间的所有处理,包括你的方法绑定,这个问题很隐蔽,一般很难发现,这个校验个人认为为客户端使用AJAX带来了很大的麻烦,动态修改下来菜单的选项是很普通的ajax应用了(比如多级联动下拉菜单),为了给SelectOneMenu提供ajax能力我不得不重新实现了一个SelectOneMenu,现在我把工程升级到JSF 1.2才发现JSF1.2的核心api正如官方所言没有重大改动,只是统一了EL,但同时我确发现JSF的一些“不重要”的API改动确很大,我自己开发的组件用了1.1中的**util类,可是现在发现那些静态方法现在都没有了,这时不得不再次重新写一个SelectOneMenu,这回一点儿它的**util类也不用,免的下回升级还重写。

三,JSF 1.1 RI中的commandLink居然把dom中的onClick()自己占用了,发现JSF1.2 RI又还回来了,这点还是做的不错的,不过却发现JSF组件ID系统自动生成的算法改了,1.1中如果你没有给页面上的组件指定ID那么JSF会按照某种算法自动生成一个,可是1.2中不但为这个自动生成id的行为增加了一个“开关”,而且生成算法也改了,这回麻烦大了,当初项目组中很多成员比较懒,页面中的javascript直接就是用的那个自动生成的ID,这回生成算法一改页面中的大部分javascript都瘫痪了,唉,懒人啊!

四,原来1.1与Spring整合的时候发现Spring提供的JSF变量解析器只能整合MyFaces,不得不使用了jsf-spring.jar进行jsf RI+spring整合,现在突然发现JSF 1.2 RI终于可以直接使用spring的变量解析器进行整合了,这点儿还是不错的。表扬一下!

五,原来项目中的上传下载使用了MyFaces的tomahawk组件包中的部分组件,可是到apache的网战上一看虽然MyFaces-core出了1.2版本,但是tomahawk还仍然停留在1.1,唉!组件版本不兼容的烦恼啊!

分享到:
评论
3 楼 cairnsfu 2011-07-04  
楼主JSF还是很有研究的,,多多学习。
2 楼 love2008 2008-10-31  
希望jsf越来越好!
1 楼 fourfire 2008-04-10  
是啊,问题很多,没法升级啊

相关推荐

    JSF上传 JSF大文件上传 JSF上传代码 JSF上传源代码

    JSF(JavaServer Faces)是Java平台上用于构建用户界面的Web框架,尤其在处理表单和数据交互方面表现强大。本项目聚焦于JSF的文件上传功能,特别是针对大文件的上传,允许用户上传最大可达1.99GB的文件。在实际应用...

    JSF Java Server Faces (JSF)框架

    JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...

    JSF文件下载实现

    **JSF 文件下载实现** 在JavaServer Faces (JSF)框架中,实现文件下载功能是一项常见的需求。在本文中,我们将深入探讨如何使用JSF来实现在Web应用程序中下载文件的功能。主要涉及的关键知识点包括: 1. **JSF上...

    jsf-api.jar和jsf-impl.jar

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它提供了一种组件化和事件驱动的方式来创建交互式的Web界面。JSF API 和 JSF Impl 是JSF框架的核心组成部分。 **jsf-api.jar**...

    开发JSF所需要的jar包

    JavaServer Faces(JSF)是Java平台上的一种用于构建Web应用程序的MVC(Model-View-Controller)框架。它提供了一种组件化的方式来构建用户界面,简化了前后端交互的复杂性。在JSF中,开发者可以使用声明式编程模型...

    jsf1.2 jar包下载

    JavaServer Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端Web应用程序框架,它遵循Model-View-Controller(MVC)设计模式。JSF 1.2是该框架的一个较早版本,发布于2006年,提供了一系列增强功能和改进...

    IDEA创建JSF项目所需jar包.zip

    在JavaServer Faces (JSF) 开发环境中,IntelliJ IDEA (IDEA) 是一个流行的集成开发环境。这个“IDEA创建JSF项目所需jar包.zip”文件包含了两个关键的库文件,它们对于在IDEA中成功搭建JSF项目至关重要。下面我们将...

    JSF开发必备JAR

    ================================= JSF开发必备JAR ================================= <br>《JSF入门简单中文版》开篇提到JSF开发需要的jar,' 但是按其中提供的方法: <br>jstl.jar 与 ...

    JSF中文教程jsf

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它简化了开发人员创建交互式、数据驱动的Web界面的过程。JSF提供了一个组件模型,允许开发者通过拖放组件的方式来构建用户界面...

    JSF与hibernate整合的登陆

    **JSF(JavaServer Faces)** 是Java平台上的一种用于构建用户界面的Web应用程序框架,它简化了开发人员创建和管理动态Web用户界面的过程。JSF提供了组件库、事件处理机制和生命周期管理,允许开发者通过声明式的...

    jsf-api.jar

    JSF(JavaServer Faces)是Java平台上的一种用于构建用户界面的MVC(Model-View-Controller)框架。它简化了Web应用开发,提供了一种声明式的方式来创建动态、交互式的Web界面。`jsf-api.jar` 文件是JSF API的核心库...

    jsf第一个例子 jsf架包 jsf实例

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它为开发人员提供了一种模型-视图-控制器(MVC)架构,简化了前端和后端之间的交互。JSF提供了组件库,使得创建动态、交互式的...

    用jsf做的登录注册的组件

    JSF(JavaServer Faces)是一种用于构建Web应用程序的Java技术,它提供了一种声明式的方式来创建用户界面,并处理用户交互。在这个"用jsf做的登录注册的组件"中,我们可能会涉及以下几个关键知识点: 1. **JSF架构*...

    JSF的工作方式 JSF架构 JSF模型 JSF事件类型

    JavaServer Faces (JSF) 是一个用于构建用户界面的Java Web框架,它简化了创建和维护Web应用程序的复杂性。JSF的核心理念是提供一种组件化的编程模型,将UI元素与业务逻辑分离,使得开发者可以专注于应用的逻辑部分...

    JSF包,jsf包,JSF包,jsf包

    **JSF(JavaServer Faces)** 是一种Java平台上的Web应用程序开发框架,它提供了一种组件化和事件驱动的方式来创建用户界面。JSF的核心概念包括组件、事件、渲染器和生命周期,这些元素共同构建了一个强大的MVC...

    JSF入门+JSF web实战+JSF2

    JavaServer Faces(JSF)是Java平台上的一种用于构建Web应用程序的MVC(Model-View-Controller)框架。它提供了一种声明式的方式来构建用户界面,简化了开发过程,并且与Java EE平台无缝集成。本系列资料包括《JSF...

    jsf分页 jsf分页 jsf分页

    在JavaServer Faces (JSF)框架中,分页是一种常用的技术,用于处理大量数据时提供更好的用户体验。当数据集过大,一次性加载所有记录到页面上会导致性能下降且用户界面响应变慢。通过分页,我们可以将数据分成多个...

    javaee.jar,jsf-api.jar,jsf-impl.jar,jstl-1.2.jar

    3. **jsf-impl.jar**:与jsf-api.jar相对应,这个文件包含了JSF的实现代码。在实际开发中,开发者通常只需要引用api.jar进行编程,而impl.jar则在运行时提供具体的实现细节,执行用户界面的渲染和事件处理等功能。 ...

    图书管理系统-BookM_JSF_Hibernate_Spring

    《图书管理系统-BookM_JSF_Hibernate_Spring》是一个基于Java技术栈的Web应用程序,它融合了多个核心技术,包括JavaServer Faces(JSF)、Hibernate、Spring框架以及ajax4jsf库,旨在提供一个高效、易用的图书管理...

    jsf-api-2.0.3.jar.zip_jsf api_jsf jar包_jsf-api-2.0.3.jar_jsf-api

    JSF(JavaServer Faces)是Java平台上的一种用于构建用户界面的MVC(Model-View-Controller)框架。它提供了一种声明式的方式来创建Web应用程序,允许开发者通过组件和事件处理来构建用户界面,而无需深入HTML和...

Global site tag (gtag.js) - Google Analytics