This commit is contained in:
Keith Donald
2007-04-01 14:37:10 +00:00
parent 312f89cd9c
commit ccfbbcf7bf
7 changed files with 132 additions and 94 deletions

View File

@@ -1,7 +1,21 @@
<%@ include file="includeTop.jsp" %>
<%@ page contentType="text/html" %>
<%@ page session="false" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Sell Item - Select Category</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<div id="logo">
<img src="images/spring-logo.jpg" alt="Logo" border="0">
</div>
<f:view>
<div id="content">
<div id="insert"><img src="images/webflow-logo.jpg"/></div>
<h2>Select category</h2>
@@ -39,7 +53,10 @@
</h:form>
</table>
</div>
</f:view>
<%@ include file="includeBottom.jsp" %>
<div id="copyright">
<p>&copy; Copyright 2004-2007, <a href="http://www.springframework.org">www.springframework.org</a>, under the terms of the Apache 2.0 software license.</p>
</div>
</body>
</html>

View File

@@ -1,6 +1,18 @@
<%@ include file="includeTop.jsp" %>
<%@ page contentType="text/html" %>
<%@ page session="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<f:view>
<html>
<head>
<title>Sell Item - Enter Shipping Information</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<div id="logo">
<img src="images/spring-logo.jpg" alt="Logo" border="0">
</div>
<div id="content">
<div id="insert"><img src="images/webflow-logo.jpg"/></div>
@@ -54,6 +66,8 @@
</table>
</div>
</f:view>
<%@ include file="includeBottom.jsp" %>
<div id="copyright">
<p>&copy; Copyright 2004-2007, <a href="http://www.springframework.org">www.springframework.org</a>, under the terms of the Apache 2.0 software license.</p>
</div>
</body>
</html>

View File

@@ -3,8 +3,6 @@
<head>
</head>
<body>
<jsp:forward page="intro.jsf" />
</body>
</html>

View File

@@ -1,52 +1,35 @@
<%@ page session="true" %> <%-- make sure we have a session --%>
<%-- make sure we have a session --%>
<%@ page session="true" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<HTML>
<BODY>
<html>
<body>
<f:view>
<DIV align="left">Sell Item - A Spring Web Flow Sample (JSF Version)</DIV>
<HR>
<DIV align="left">
<P>
<div align="left">
<p>
<h:form>
<h:commandLink value="Sell Item" action="flowId:sellitem-flow"/>
</h:form>
</P>
<P>
This Spring web flow sample application implements the example application
discussed in the article
<A href="http://www-128.ibm.com/developerworks/java/library/j-contin.html">
Use continuations to develop complex Web applications</A>. It illustrates
the following concepts:
<UL>
<LI>
Spring Web Flow's JSF integration.
</LI>
<LI>
Using the flowId: command link prefix to let the view tell the web
flow controller which flow needs to be started.
</LI>
<LI>
Implementing a wizard using web flows.
</LI>
<LI>
Using <A href="http://www.ognl.org/">OGNL</A> based conditional expressions.
</LI>
</UL>
</P>
</DIV>
<HR>
<DIV align="right"></DIV>
</BODY>
</p>
<p>
This Spring Web Flow sample application is the JSF-based version of the familiar "Sell item" sample.
It illustrates the following concepts:
</p>
<ul>
<li>Using Spring Web Flow with JSF</li>
<li>Implementing a wizard using web flows.</li>
<li>Using continuations to make the flow completely stable, no matter how browser navigation buttons are used.</li>
<li>
Using "conversation invalidation after completion" to prevent duplicate submits of the same sale
while taking advantage of continuations to allow back button usage while the application transaction is in process. </li>
<li>"Always redirect on pause" to benefit from the POST+REDIRECT+GET pattern with no special coding.</li>
<li>Using <A href="http://www.ognl.org/">OGNL</A> based conditional expressions.</li>
<li>Use of subflows to compose a multi-step business process from independently reusable modules.</li>
</ul>
</div>
</f:view>
</HTML>
</body>
</html>

View File

@@ -1,54 +1,61 @@
<%@ page contentType="text/html" %>
<%@ include file="includeTop.jsp"%>
<%@ page session="false" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Sell Item - Enter Price and Item Count</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<div id="logo">
<img src="images/spring-logo.jpg" alt="Logo" border="0">
</div>
<f:view>
<div id="content">
<div id="insert"><img src="images/webflow-logo.jpg" /></div>
<!-- display any errors from sale Validator -->
<c:if test="${not empty sale}">
<spring:bind path="sale.*">
<c:forEach items="${status.errorMessages}" var="curError">
<div class="error">${curError}</div>
</c:forEach>
</spring:bind>
</c:if>
<h2>Enter price and item count</h2>
<hr>
<table>
<h:form id="priceAndItemCountForm">
<tr>
<td>Price:</td>
<td><h:inputText id="price" value="#{flowScope.sale.price}"
required="true">
<td>
<h:inputText id="price" value="#{flowScope.sale.price}" required="true">
<f:validateDoubleRange minimum="0.01"/>
</h:inputText>
&nbsp;&nbsp;
<h:message for="price" style="color: red"/>
<h:message for="price" errorClass="error"/>
</td>
</tr>
<tr>
<td>Item count:</td>
<td><h:inputText id="itemCount" value="#{flowScope.sale.itemCount}"
required="true">
<td>
<h:inputText id="itemCount" value="#{flowScope.sale.itemCount}" required="true">
<f:validateLongRange minimum="1"/>
</h:inputText>
&nbsp;&nbsp;
<h:message for="itemCount" style="color: red"/>
<h:message for="itemCount" errorClass="error"/>
</td>
</tr>
<tr>
<td colspan="2" class="buttonBar">
<input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}"/>
<h:commandButton type="submit" value="Next" action="submit" immediate="false" /></td>
<h:commandButton type="submit" value="Next" action="submit" immediate="false" />
</td>
</tr>
</h:form>
</table>
</div>
</f:view>
<%@ include file="includeBottom.jsp"%>
<div id="copyright">
<p>&copy; Copyright 2004-2007, <a href="http://www.springframework.org">www.springframework.org</a>, under the terms of the Apache 2.0 software license.</p>
</div>
</body>
</html>

View File

@@ -1,7 +1,21 @@
<%@ include file="includeTop.jsp" %>
<%@ page contentType="text/html" %>
<%@ page session="false" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Sell Item - Enter Shipping Information</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<div id="logo">
<img src="images/spring-logo.jpg" alt="Logo" border="0">
</div>
<f:view>
<div id="content">
<div id="insert"><img src="images/webflow-logo.jpg"/></div>
<h2>Enter shipping information</h2>
@@ -38,7 +52,10 @@
</h:form>
</table>
</div>
</f:view>
<%@ include file="includeBottom.jsp" %>
<div id="copyright">
<p>&copy; Copyright 2004-2007, <a href="http://www.springframework.org">www.springframework.org</a>, under the terms of the Apache 2.0 software license.</p>
</div>
</body>
</html>

View File

@@ -11,20 +11,22 @@
<p>
This Spring Web Flow sample application implements the example application
discussed in the article <a href="http://www-128.ibm.com/developerworks/java/library/j-contin.html">
Use continuations to develop complex Web applications</a>.
It illustrates the following concepts:
Use continuations to develop complex Web applications</a>. It illustrates the following concepts:
</p>
<ul>
<li>Using the "_flowId" request parameter to let the view tell the web flow controller which flow needs to be started.</li>
<li>Implementing a wizard using web flows.</li>
<li>
Use of the FormAction to perform form processing, including the FormAction's "setupForm" method to install custom property editors for formatting text field values (shipDate).
Use of the FormAction to perform form processing, including the FormAction's "setupForm" method to install custom
property editors for formatting text field values (shipDate).
</li>
<li>Using continuations to make the flow completely stable, no matter how browser navigation buttons are used.</li>
<li>
Using "conversation invalidation after completion" to prevent duplicate submits of the same sale
while taking advantage of continuations to allow back button usage while the application transaction is in process. </li>
<li>"Always redirect on pause" to benefit from the POST+REDIRECT+GET pattern with no special coding.</li> <li>Using <A href="http://www.ognl.org/">OGNL</A> based conditional expressions.</li>
while taking advantage of continuations to allow back button usage while the application transaction is in process.
</li>
<li>"Always redirect on pause" to benefit from the POST+REDIRECT+GET pattern with no special coding.</li>
<li>Using <A href="http://www.ognl.org/">OGNL</A> based conditional expressions.</li>
<li>Use of subflows to compose a multi-step business process from independently reusable modules.</li>
</ul>
</div>