我剛開始添加的Webflow到Spring MVC的項目,我讓我的flow.xml組件此編譯錯誤:春Webflow的2.4.2缺少啓動狀態
Start state is missing. Add at least one state to the flow
我發現了一個相同的職位上SO從一年前:webflow.xsd - Start state is missing. Add at least one state to the flow。 沒有人回答這個問題,但我發現它在Spring Webflow的Jira存儲庫中:webflow.xsd - Start state is missing. Add at least one state to the flow。它被標記爲不能重現。
這是我非常簡單的webflow.xml摘錄。
<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/webflow
http://www.springframework.org/schema/webflow/spring-webflow-2.4.xsd">
<on-start>
<evaluate expression="recipeService.createRecipe(currentUser.name)" result="flowScope.recipe" />
</on-start>
<view-state id="basics" view="recipe/basics" model="recipe">
<transition on="proceed" to="ingredients"></transition>
<transition on="cancel" to="cancel"></transition>
</view-state>
... more states ...
<end-state id="end" view="recipe/end"/>
<end-state id="cancel" view="recipe/end"/>
</flow>
該文檔指出啓動狀態是可選的 - 第一個視圖狀態將被認爲是開始。如果我將spring-webflow-2.4.xsd更改爲2.0,則錯誤消失,但如果嘗試對任何視圖狀態條目使用驗證提示,則會發生不同的錯誤。以下示例中的「Basic1」和「Basic2」是配方模型上的驗證組。
<view-state id="basics" view="recipe/basics" model="recipe" validation-hints="'basic1,basic2'">
我使用
- STS 3.6.4
- 春4.1.6.RELEASE
- 訪問Spring WebFlow 2.4.2.RELEASE
- 春季安全4.0.2.RELEASE
- Java 1.7
- 休眠4.3.10.FINAL
我使用的是基於java的配置的一切,但我不認爲這是問題所在,除非我在Webflow 2.4.2需要的版本不匹配?我可以發佈我的WebMvcConfig和WebFlowConfig或pom.xml或任何其他信息,如果這將有所幫助。
任何援助將不勝感激。
編輯#1:從Java配置
From WebFlowConfig.java:
@Bean
public FlowDefinitionRegistry flowRegistry() {
return getFlowDefinitionRegistryBuilder(flowBuilderServices())
.setBasePath("/WEB-INF/views")
.addFlowLocationPattern("/**/*-flow.xml")
.build();
}
From WebMvcConfig.java
@Override
public void addViewControllers(final ViewControllerRegistry registry) {
super.addViewControllers(registry);
registry.addViewController("/recipe/basics.htm");
registry.addViewController("/recipe/ingredients.htm");
registry.addViewController("/recipe/instructions.htm");
registry.addViewController("/recipe/optional.htm");
registry.addViewController("/recipe/end.htm");
}
摘錄使用2.0所有的頁面都以正確的順序執行。
編輯#2
我忘了提,甚至與2.4 XSD編譯錯誤的Webflow沒有得到執行,同樣在一年前後。我還發現有關STS的這個問題:webflow config gives incorrect "Start state definition is missing." error。所示的修復版本是3.3.0.M1,所以我會假設(?)該修補程序仍然包含在STS 3.6.4中。
對我也一樣。將方案從2.0更改爲2.4,並刪除了屬性中的流支持 - 作品。 –