首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring Web Flow 2.0 入門實戰(六):購物車流程完整配置與運行

     編輯:Java 相關知識

項目結構佈局

WEB-INF/
├── lib/                    # JAR 包
├── config/
│   ├── web-application-config.xml
│   ├── webmvc-config.xml
│   └── webflow-config.xml
├── flows/
│   └── shopping.xml
├── jsp/
│   ├── index.jsp
│   ├── viewCart.jsp
│   ├── viewOrder.jsp
│   └── orderConfirmed.jsp
└── web.xml

核心依賴

  • org.springframework.webflow-2.0.2.RELEASE.jar
  • org.springframework.js-2.0.2.RELEASE.jar
  • org.springframework.binding-2.0.2.RELEASE.jar
  • jboss-el.jar (Unified EL 實現)

關鍵配置文件

webmvc-config.xml - MVC 整合

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
</bean>

<bean id="flowController" class="org.springframework.webflow.mvc.servlet.FlowController">
    <property name="flowExecutor" ref="flowExecutor"/>
</bean>

<bean id="viewMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <value>/shopping.do=flowController</value>
    </property>
    <property name="defaultHandler">
        <bean class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
    </property>
</bean>

webflow-config.xml - Flow 引擎

<webflow:flow-executor id="flowExecutor"/>

<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices">
    <webflow:flow-location path="/WEB-INF/flows/shopping.xml" id="shopping"/>
</webflow:flow-registry>

<webflow:flow-builder-services id="flowBuilderServices" view-factory-creator="mvcViewFactoryCreator"/>

<bean id="mvcViewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
    <property name="viewResolvers" ref="viewResolver"/>
</bean>

shopping.xml - 流程定義

<flow xmlns="https://www.springframework.org/schema/webflow">
    <view-state id="viewCart" view="viewCart">
        <transition on="submit" to="viewOrder"/>
    </view-state>
    
    <view-state id="viewOrder" view="viewOrder">
        <transition on="confirm" to="orderConfirmed"/>
    </view-state>
    
    <view-state id="orderConfirmed" view="orderConfirmed">
        <transition on="returnToIndex" to="returnToIndex"/>
    </view-state>
    
    <end-state id="returnToIndex" view="externalRedirect:servletRelative:/index.jsp"/>
</flow>

視圖頁面實現

viewCart.jsp

<h1>View Cart</h1>
<a href="${flowExecutionUrl}&_eventId=submit">Submit</a>

viewOrder.jsp

<h1>Order</h1>
<a href="${flowExecutionUrl}&_eventId=confirm">Confirm</a>

orderConfirmed.jsp

<h1>Order Confirmed</h1>
<a href="${flowExecutionUrl}&_eventId=returnToIndex">Return to index</a>

index.jsp 入口

<h1>Hello!</h1><br/>
<a href="shopping.do">View Cart</a>

關鍵機制解析

  • flowExecutionUrl:框架自動注入,包含流程執行鍵,不可手工構造
  • _eventId:觸發對應 transition,如 _eventId=submit
  • externalRedirect:servletRelative::外部重定向,相對於當前 Servlet 路徑

部署驗證

  1. 發布至 Tomcat
  2. 訪問 https://localhost:8080/app/spring/index.jsp
  3. 點擊 "View Cart" 啟動流程
  4. 依次測試 Submit → Confirm → Return to index
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved