JSF1.1规范——前言

前言

JavaServer Faces 1.0 JSF 1.0)规范由 Java Community Process JSR-127 专家组开发(关于JCP的更多信息参见<http://www.jcp.org>)。

上一版以来的最新变更

本版的主要变更/特性

和最初发布的 JavaServer 技术相比已经有了一些变化,这里是最重要的一部分的摘要。特别感谢 JSR127专家组的Hans BergstenAdam Winer对本次变更作出的贡献,同样要感谢 Ryan LubkeTCK组的几次变更作出的贡献。

一般变更

n 新的1.1版本的 DTD ,向后兼容1.0版本。唯一的不同之处在于组件(component)和 绘制器(renderer)可以声明支持的facets。请参见10.3.3节“应用配置资源格式”。

n 引入SelectOneSelectMany“无值”的概念。类com.sun.faces.component.UIInput

n 修改isEmpty()方法,考虑0长度的数组或者List实例为空。

n 重构com.sun.faces.component.UIInput类的验证实现,以防止伪造的ValueChangeEvent实例被UISelectOneUISelectMany类弃用。参见UIInput.validate()javadocs

n 方法com.sun.faces.component.UIViewRoot.getRenderKitId()现在返回null,除非显式调用过setter。参见该方法的javadoc

n DoubleRangeValidatorLengthvalidatorLongRangeValidator现在要求任何传递给验证错误消息的验证参数都得通过javax.faces.Number转换器进行转换。

n ResultSetDataModel.getRowData()JavaDocs描述规定返回的Map必须使用区分大小写的比较器(Comparator)。

n DataModelEvent.getRowIndex()现在返回-1表示没有行被选定。

n 修正UIMessageshowDetailshowSummary的默认值的JavaDoc描述,以使它和代码一致。

n 修改EditableValueHoldergetSubmittedValue()JavaDoc描述,以正确地说明什么时候调用该方法。

n 修正UIComponentTag.setProperties()JavaDoc,以正确地描述要设置哪些参数。

n 实现现在允许嵌套<h:dataTable>标签。原先不允许。

n 修复了在以浏览历史的“回退”方式访问页面,而页面上有多个<h:commandLink>标签时会生成多个动作事件的bug

标准HTML RenderKit变更

n 使得“for”属性对于outputLabel标签不再是必需的。当工具想要让用户在用label与组件关联之前将其固定在页面上时是必需的。

n SelectManyMenuSelectManyListSelectOneRadioSelectManyCheckboxlistRenderKit变更

n 删除SelectManyMenuSelectManyListSelectOneMenuSelectOneList的“select”标签。

n 删除SelectOne单选按钮和SelectMany复选框。绘制“id”,“style”,“styleclass”作为外部表的一部分。

n SelectManyCheckboxSelectOneRadio绘制器现在不绘制内嵌标签<label>元素的“for”属性。

n 关于<label>元素用法的SelectOneRadio绘制器描述更清楚。

n SelectMany绘制器的“size”属性描述更符合实际属性。

n OutputLabel绘制器现在可以处理组件的标签(label)点还没有创建这种情况,只要组件和标签位于同一个表单。

n 现在为所有select*绘制器加入“enabledClass”和“disabledClass”。

规范文档变更

n 2.5.2.4 LIMIT消息不再使用,删除 LIMIT消息。

n 5.25.1,修改action 方法签名以返回String ,而不是void

n 5.3.1.3

n 本节描述如何设置一个list项属性,添加一个步骤,描述如果属性是一个数组,然而属性getter返回null如何去做。

n 分配隐含变量的范围,因此我们可以确定如果一个bean可以引用一个隐含变量,依赖于它的范围。比如,一个session范围的bean不能引用request范围内的变量。

n 添加一个规则,处理混合表达式的网络范围:混合表达式的网络范围考虑为混合表达式最窄的范围,包括无范围的表达式。

n 5.3.1.13明确了运行时而不是发布时本节中描述的错误。

n 9.4.3 timeZone”的数据类型。

n 9.4.3节中<f:convertDateTime>的“timeZone”属性被描述为只能接受TimeZone实例,但应该也可以接受String

n <f:convertDateTime><f:convertNumber>的“locale”属性为9.4.3 9.4.4节中描述为只接受Locale实例,但是必须还接受String

n 9.4.12 - 9.4.14修复验证器和转换器ID

n 9.4.9 用于“itemValue”的错误数据类型

n 9.4.9节中<f:selectItem>的属性表声明“itemValue”属性是一个String,但是它应当是Object,以匹配UISelectItem属性的类型。

n 9.4.9节中<f:selectItem>的语法部分丢失了一对右中括号来标记可选属性的结束。

n 9.4.10包含了一些错误:getComponentType()返回值的描述遗漏了“javax.faces”前缀。“value”属性可接受的数据类型列表和UISelectItems的数据类型不匹配。

n 9.4.8<f:param>语法部分漏掉了“binding

n 10.2.6.1节纠正了LifecycleFactory RenderKitFactory的类名。

其他Java平台规范

JSF基于以下Java API规范:

n JavaServer PagesJSP)规范,版本1.2 <http://java.sun.com/products/jsp/>

n Java. ServletServlet)规范,版本2.3 <http://java.sun.com/products/servlet/>

n J2SE,版本1.3 <http://java.sun.com/j2se/>

n JavaBeans规范,版本1.0.1 <http://java.sun.com/products/javabeans/docs/spec.html>

n JavaServer Pages标准标签库,版本1.0 JSTL<http://java.sun.com/products/jsp/jstl/>

因此,一个 JSF容器必须支持以上所有规范。这种要求使得faces应用可以方便地跨越各种各样的JSF实现。

而且,JSF被设计为可以和其他web相关的Java API协同工作,包括:

n Portlet规范,JSR-168开发中<http://www.jcp.org/jsr/detail/168.jsp>

相关文档和规范

万维网联盟(World Wide Web Consortium)的以下文档和规范对于JSF实现者,以及基于JavaServer Faces的应用和组件开发人员是有意义的。

n 超文本标记语言(HTML),版本4.01 <http://www.w3.org/TR/html4/>

n 可扩展的超文本标记语言(XHTML),版本1.0 <http://www.w3.org/TR/xhtml1>

n 可扩展的标记语言(XML),版本1.0 (第二版)<http://www.w3.org/TR/REC-xml>

本规范要求javax.faces(以及它的子包)的类和接口的Javadoc文档应集中起来,作为参考使用。

术语

文档中关键字MUSTMUST NOTREQUIREDSHALLSHALL NOTSHOULDSHOULD NOTRECOMMENDEDMAYOPTIONAL的解释参照

n RFC中表示要求级别的关键字使用(RFC 2119<http://www.rfc-editor.org/rfc/rfc2119.txt>

提供反馈

我们欢迎关于本规范的任何反馈。你的意见请发送email<jsr127-comments@sun.com>

请注意,对于我们收到的反馈,你通常不会从工程师处收到一封回复。不过,每一份意见规范团队都会阅读,评价和存档。

致谢

JavaServer Faces规范(版本1.0)是 JSR-127专家组在Java Community Process 资助下辛勤努力的结果。我们要感谢所有专家组的成员: Peter AbrahamShawn BayernHans BergstenJoseph BerkovitzMathias BogaertDavid BosshaertPete CarapetyanRenaud DemeurKarl EwaldMike FrisinoDavid GearyAntonio HillKevin JonesAmit KishnaniTom LaneEric LazarusBart LeetenTakahide MatsutsakaKumara Swamy Reddy MettuKris MeukensSteve MeyfroidtBrendan MurrayMichael Nash, Daryl OlanderSteve ReinerBrian RobinsonMichael StappJames Strachan, Kai ToedterAna Von KloppAdam WinerJohanna Voolich WrightJohn ZukowskiJason van Zyl

Hans BergstenAdam Winer应当受到特别的赞誉,因为不仅积极地解决规范开发中的每一个细节,和相应的API,而且不知疲倦地贡献出休息时间,修复实现涉及的bugJoe BerkovitzDavid GearyBrendan MurrayAna Von Klopp也做出了显著的贡献。

我们还要感谢 Amy Fowler Hans Muller,他们是JSR-127最初提交给JCP时,早期版本的领导者,发展了一些关键的架构理论;感谢Graham Hamilton,他第一个有了这个JSR的念头。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值