1

我是 Spring Webflow 的新手,我正在将旧的 Java MVC 应用程序迁移到 Spring MVC + WebFlow。

我们旧应用程序中的导航使用这样的 URL /MyServlet?action=myAction&status=1,我们需要在新应用程序中维护它们。所以我们创建了一个控制器来控制对 MyServlet 的所有请求

@RequestMapping(value="/MyServlet", method = {RequestMethod.POST, RequestMethod.GET})

在这个控制器中,我们有执行操作的旧 servlet 代码。该解决方案允许我们在 Spring 控制下使用旧代码。

现在我们想使用 WebFlow,但是所有视图都用上面提到的 URL 表示,当我尝试创建一个流时,它似乎是无效的。我有以下错误:

对实体“action”的引用必须以 ';' 结尾 分隔符

这是我的 XML 流文件:

<view-state id="idIn" view="/MyServlet?action=myAction&status=1">
    <transition on="list" to="idList" />
</view-state>

<view-state id="idList" view="/MyServlet?action=myAction&status=2">
    <transition on="new" to="idNew" />
</view-state>

<view-state id="idNew" view="/MyServlet?action=myAction&status=3">
    <transition on="out" to="idOut" />
</view-state>

<end-state id="idOut" view="/MyServlet">
</end-state>

是否可以在 Spring WebFlow 中使用带参数的 URL?我怎么能做到?

提前非常感谢。

4

2 回答 2

0

Spring WebFlow 有自己的 URL 结构,流中的所有状态共享整个流的单个 URL。因此,您将无法同时维护当前的 URL 结构并使用 Spring WebFlow。

因此,流中的各个状态不能直接访问,即使您可以使用 mod_rewrite 之类的东西转换 URL,您也会尝试跳到流的中间,这不是 Spring WebFlow 的工作方式。

此外,viewinview-state应该是一种视图渲染技术,如 JSP 或 Tile 定义。它是对特定视图的内部引用,而不是外部用户可见的 URL。

于 2012-06-19T14:20:15.550 回答
0
The reference to entity "action" must end with the ';' delimiter

&当写入字符以在 URL 中传递参数时,会出现此错误。只写&amp;那个字符,错误应该被修复。

希望这可以帮助。

于 2012-07-30T22:42:13.870 回答