whatsnew.md 10.7 KB
Newer Older
dallascao's avatar
dallascao 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
# 2. 有什么新鲜事吗?

## [](#whatsnew-swf-250)2.1。 Spring Web 流 2.5

这个版本提供了一条到 Spring Framework5 的升级路径,而这条路径又需要 Java8+、 Servlet 3.1、 Hibernate 5、Tiles3。有关更多详细信息,请参见[Spring Framework wiki](https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-Spring-Framework-5.x)[样品库](https://github.com/spring-projects/spring-webflow-samples)已升级到 Spring Web 流 2.5。

从 2.5 开始,不再有*spring-js*模块。该模块中的类已被保留,但已转移到*spring-webflow*模块中的新包中。*spring-js-resources*模块作为一个可选模块是可用的,必须显式地包含该模块。

此版本需要 JSF2.2 或更高版本。

## [](#whatsnew-swf-240)2.2。 Spring Web 流 2.4

这个版本需要 JDK1.6。

### [](#whatsnew-swf-java-config)2.2.1。基于 Java 的配置

Web Flow 现在支持基于 Java 的系统配置替代方案。参见更新的[第 10 章,* 系统设置 *](system-setup.html)

还请参见[Booking-MVC](https://github.com/spring-projects/spring-webflow-samples/tree/master/booking-mvc)[预订脸](https://github.com/spring-projects/spring-webflow-samples/tree/master/booking-faces)示例,这些示例已更新为使用所有 Java 配置。

### [](#whatsnew-swf-mvcflash)2.2.2。 Spring MVC 闪存范围集成

当一个流结束时,在将属性保存在 Spring MVC 的闪存范围中供控制器访问后,它现在可以重定向到 Spring MVC 控制器。

[第 11.8 节,“将流输出保存到 MVC 闪存范围”](spring-mvc.html#spring-mvc-flash-output)

### [](#whatsnew-partial-validation)2.2.3。部分 JSR-303 Bean 验证

流定义可以通过 View State 和 Transition 元素支持的 Validation-Hints 属性在模型上应用部分验证。

[该部分被称为“部分验证”。](views.html#view-validation-jsr303-partial)

### [](#whatsnew-hibernate4)2.2.4。 Hibernate 支持

除了 Hibernate 3 之外,`HibernateFlowExecutionListener`现在还支持 Hibernate 4。

截至 2.4.4,`HibernateFlowExecutionListener`也与 Hibernate 5 起作用。

### [](#whatsnew-tiles3)2.2.5。磁贴 3 支持

现在`AjaxTilesView`除了支持 tile2.2 外,还支持 tile3。

### [](#whatsnew-swf-jsf20)2.2.6。最低 JSF2.0 要求

Spring Web Flow 不再支持 Java ServerFaces 版本 1.2 和更早版本,如果你还没有这样做,你将需要升级到 JSF2.0 或更高版本。此外,在这个版本中,已经删除了以前通过 JSF1.2 提供的用于渐进 Ajax 增强的 Spring 面组件。

[???]()。

### [](#whatsnew-swf-jsf20-portlet)2.2.7。Portlet API2.0 和 JSF2.0 支持

Spring Web Flow2.2 中引入的内部 Portlet 集成已经进行了升级,以实现 JSF2.0 的兼容性。Portlet 环境不支持一些更高级的 JSF2.0 特性,例如部分状态保存,但是,现有的应用程序现在可以升级到所需的最低 JSF 版本。升级后的项目将需要确保`<faces:resources>`元素被包括在其 Spring 配置中。

### [](#whatsnew-deprecation)2.2.8。异议

此版本删除*Spring.js*。该版本包括整个 * Spring-js-resources* 模块,包括*Spring.js** Spring-dojo.js* 以及捆绑的 Dojo 和 CSS 框架。同样不推荐的是来自*spring-js*模块的`SpringJavascriptAjaxHandler`*spring-js*的其余部分,例如`AjaxHandler``AjaxTilesView`,将在未来的版本中折叠成*spring-webflow*

OGNL 支持现在已被弃用。

## [](#whatsnew-swf-230)2.3。 Spring Web 流 2.3

### [](#whatsnew-swf-embedded-flow)2.3.1。在页面上嵌入流

默认情况下,WebFlow 在进入每个视图状态时都会进行客户端重定向。这使得不可能在页面或模态对话框中嵌入流并执行多个视图状态,而不会导致整页刷新。Web Flow 现在支持以“嵌入式”模式启动一个流。在这种模式下,在 Ajax 请求期间,流可以转换到其他视图状态,而无需客户端重定向。见[第 11.7 节,“在页面上嵌入流”](spring-mvc.html#spring-mvc-embedded-flow)[第 13.6 节,“在页面上嵌入流”](spring-faces.html#spring-faces-embedded-mode)

### [](#whatsnew-jsr303)2.3.2。支持 JSR-303 Bean 验证

对 JSR-303 Bean 验证 API 的支持现在可以在 Spring MVC 中提供的等效支持的基础上获得。有关更多详细信息,请参见[第 5.10 节,“验证模型”](views.html#view-validate)

### [](#whatsnew-pc-propagation)2.3.3。流管理的持久性上下文传播

从 Web 流 2.3 开始,管理的流`PersistenceContext`将自动扩展(传播)到子流,假设子流也具有启用的特性。见[第 7.3 节,“流管理的持久性和子流”](flow-managed-persistence.html#flow-managed-persistence-propagation)

### [](#whatsnew-portlet-resource-requests)2.3.4。Portlet2.0 资源请求

现在已经添加了对 Portlet2.0 资源请求的支持,从而支持部分呈现的 Ajax 请求。可以在 JSP 页面中使用`<portlet:resourceURL>`标记来准备此类请求的 URL。服务器端处理类似于一个动作和一个呈现请求的组合,但合并在一个请求中。与呈现请求不同,来自资源请求的响应仅包括来自目标 Portlet 的内容。

### [](#whatsnew-conversation-manager)2.3.5。自定义对话管理器

现在,`<flow-execution-repository>`元素提供了一个 conversation-manager 属性,该属性接受对 Conversationmanager 实例的引用。

### [](#whatsnew-redirect-in-same-state)2.3.6。在相同的状态下重定向

默认情况下,只要当前请求不是 Ajax 请求,在保持相同视图状态时,Web 流就会执行客户端重定向。这在表单验证失败后很有用。点击刷新或返回不会导致浏览器警告。因此,这种行为通常是可取的。然而,一个新的流执行属性使得禁用它成为可能,这在某些特定于 JSF 应用程序的情况下也是必要的。见[第 13.7 节,“在同一状态下重定向”](spring-faces.html#spring-faces-redirect-in-same-state)

### [](#whatsnew-samples)2.3.7。样本

建立分布所包括的样本的过程已经简化。 Maven 可用于在一个步骤中构建所有样本。Eclipse 设置包含源代码引用以简化调试。

可按以下方式获取更多样本:

```
mkdir spring-samples
cd spring-samples
svn co https://src.springframework.org/svn/spring-samples/webflow-primefaces-showcase
cd webflow-primefaces-showcase
mvn package
# import into Eclipse

```

```
mkdir spring-samples
cd spring-samples
svn co https://src.springframework.org/svn/spring-samples/webflow-showcase
cd webflow-showcase
mvn package
# import into Eclipse

```

## [](#whatsnew-swf-220)2.4。 Spring Web 流 2.2

### [](#whatsnew-jsf2)2.4.1。JSF2 支持

#### [](#d5e180)全面的 JSF2 支持

Spring Web Flow2.2 版本以 2.1 为基础,增加了对核心 JSF2 特性的支持,2.1 中不支持的以下特性现在可用:部分状态保存、JSF2 资源请求、处理和 JSF2Ajax 请求。在这一点上,对 JSF2 的支持被认为是全面的,尽管并不涵盖所有的 JSF2 特性--排除的主要是与 Web 流提供的核心价值重叠的特性,例如与导航和状态管理有关的特性。

有关重要的配置更改,请参见[第 13.3 节,“配置用于 JSF 的 Web 流”](spring-faces.html#spring-faces-webflow-config)。请注意,只支持 Sun Mojarra2.0.3 或更高版本的部分状态保存。它还没有得到 MyFaces 的支持。这是因为 MyFaces 在如何存储组件状态方面不那么容易定制。我们将与 MyFaces 合作提供这种支持。同时,你将需要在`web.xml`中使用`javax.faces.PARTIAL_STATE_SAVING`上下文参数来禁用 Apache MyFaces 的部分状态保存。

#### [](#d5e187)带原始表面组件的旅行样本

演示 Spring Web 流和 JSF 支持的主要 Spring 旅行示例现在构建在 JSF2 和来自 PrimeFaces 组件库的组件上。请核对一下分配中的订货面样品。

可以在 Spring WebFlow-Prime Faces[Showcase](https://src.springframework.org/svn/spring-samples/webflow-primefaces-showcase)处找到其他示例,这是[spring-samples](https://src.springframework.org/svn/spring-samples)存储库中的一个 SVN 存储库。使用以下命令检查并构建:

```
svn co https://src.springframework.org/svn/spring-samples/webflow-primefaces-showcase
	cd webflow-primefaces-showcase
	mvn package
	
```

### [](#whatsnew-sec)2.4.2。 Spring 安全 Facelets 标记库

Spring 新的安全标记库可用于 JSF2.0 或 JSF1.2Facelets 视图。它提供了一个 \<authorize\>标记以及几个 EL 函数。有关更多详细信息,请参见[Section 13.9, “Using the Spring Security Facelets Tag Library”](spring-faces.html#spring-faces-security-taglib)

### [](#whatsnew-versions)2.4.3。 Spring JavaScript 更新

#### [](#d5e200)弃用资源 servlet

从 Spring 3.0.4 开始, Spring 框架包括对 ResourcesServlet 的替换。请参阅 Spring 框架文档了解定制 MVC 名称空间的详细信息,特别是新的[“资源”](http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-static-resources)元素。

#### [](#d5e204)Dojo1.5 和 Dojox

捆绑的定制 Dojo 版本升级到了 1.5 版本。它现在包括 Dojox。

请注意,通常鼓励应用程序准备自己的定制 Dojo 构建以优化性能,这取决于 Dojo 的哪些部分通常一起使用。有关示例,请参见 Spring Web 流用于准备自己的定制 Dojo 构建的[scripts](https://src.springframework.org/svn/spring-webflow/branches/spring-webflow-2.2-maintenance/spring-js-resources/scripts/dojo)

#### [](#d5e209)两个 Spring JS 工件

`spring-js`工件被一分为二--新工件(`spring-js-resources`)包含客户端资源(.js、.css 等),而现有工件(`spring-js`)仅包含服务器端 Java 代码。

准备自己的定制 Dojo 构建的应用程序现在有一个选项,可以避免将`spring-js-resources``Spring.js`直接放在其 Web 应用程序的根下面。

#### [](#d5e219)客户端资源移至 meta-inf/web-resources

捆绑的客户机资源(.js、.css 等)已从其先前位于`META-INF`下的位置移到`META-INF/web-resources`。这种变化对于应用程序是透明的,但是当使用 Spring 3.0.4 中提供的新的资源处理机制时,将导致更简单和更安全的配置。

### [](#whatsnew-jsf-portlet)2.4.4。JSF Portlet 支持

#### [](#d5e226)Portlet API2.0 和 JSF1.2 支持

在 Spring 以前的版本中,对 JSF Portlet 的 Web 流支持依赖于用于 JSF 实现的 Portlet 桥,并且被认为是实验性的。 Spring Web Flow2.2 基于其自身的内部 Portlet 集成,增加了对 JSF Portlet 的支持,该集成以 Portlet API2.0 和 JSF1.2 环境为目标。有关更多详细信息,请参见[???]()。 Spring Web Flow Travel JSF Portlet 示例已经在 Apache Pluto Portal 容器上成功地进行了测试。