我是Spring Webflow的新手,我正在迁移旧的Java MVC应用程序到Spring MVC + WebFlow。
我们旧的应用程序中的导航使用了这个/MyServlet?action=myAction&status=1
这样的URL,我们需要在新的应用程序中保留它们。所以我们创建了一个Controller,用
@RequestMapping(value="/MyServlet", method = {RequestMethod.POST, RequestMethod.GET})
在这个控制器中,我们有旧的servlet代码执行动作。这个解决方案允许我们在Spring控件下使用旧代码。
现在我们想要使用WebFlow,但所有视图都用上面提到的URL表示,当我尝试创建流时,它似乎无效。我有以下错误:
对实体“行动”的引用必须以“;”结尾定界符
这是我的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?我怎么能这样做?
提前多多感谢。
答案 0 :(得分:0)
Spring WebFlow有自己的URL结构,流中的所有状态共享整个流的单个URL。因此,您无法维护当前的URL结构并同时使用Spring WebFlow。
因此,流中的各个状态不能直接访问,即使你可以使用mod_rewrite之类的东西转换URL,你也会试图跳到流的中间,这不是Spring WebFlow的工作方式。 / p>
此外,view
中的view-state
应该是一个视图呈现技术,如JSP或Tile定义。它是对特定视图的内部引用,而不是外部用户可见的URL。
答案 1 :(得分:0)
The reference to entity "action" must end with the ';' delimiter
当写入字符&
以传递URL中的参数时,会出现此错误。只需编写&
而不是该字符,错误就应该修复。
希望这有帮助。