Updated to new version of Spring Build that has syntax highlighting
This commit is contained in:
@@ -65,7 +65,7 @@
|
||||
Such expressions are dynamically evaluated by the EL and should not be enclosed in delimiters like <code>${}</code> or <code>#{}</code>.
|
||||
For example:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<evaluate expression="searchCriteria.nextPage()" />]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
@@ -84,7 +84,7 @@
|
||||
Each eval block is explictly delimited with the <code>${}</code> delimiters.
|
||||
For example:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<view-state id="error" view="error-${externalContext.locale}.xhtml" />]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
@@ -110,7 +110,7 @@
|
||||
Use <code>flowScope</code> to assign a flow variable.
|
||||
Flow scope gets allocated when a flow starts and destroyed when the flow ends.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<evaluate expression="searchService.findHotel(hotelId)" result="flowScope.hotel" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -121,7 +121,7 @@
|
||||
View scope gets allocated when a <code>view-state</code> enters and destroyed when the state exits.
|
||||
View scope is <emphasis>only</emphasis> referenceable from within a <code>view-state</code>.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<on-render>
|
||||
<evaluate expression="searchService.findHotels(searchCriteria)" result="viewScope.hotels"
|
||||
result-type="dataModel" />
|
||||
@@ -134,7 +134,7 @@
|
||||
Use <code>requestScope</code> to assign a request variable.
|
||||
Request scope gets allocated when a flow is called and destroyed when the flow returns.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<set name="requestScope.hotelId" value="requestParameters.id" type="long" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -144,7 +144,7 @@
|
||||
Use <code>flashScope</code> to assign a flash variable.
|
||||
Flash scope gets allocated when a flow starts, cleared after every view render, and destroyed when the flow ends.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<set name="flashScope.statusMessage" value="'Booking confirmed'" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -155,7 +155,7 @@
|
||||
Conversation scope gets allocated when a top-level flow starts and destroyed when the top-level flow ends.
|
||||
Conversation scope is shared by a top-level flow and all of its subflows.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<evaluate expression="searchService.findHotel(hotelId)" result="conversationScope.hotel" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -164,7 +164,7 @@
|
||||
<para>
|
||||
Use <code>requestParameters</code> to access a client request parameter:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<set name="requestScope.hotelId" value="requestParameters.id" type="long" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -173,7 +173,7 @@
|
||||
<para>
|
||||
Use <code>currentEvent</code> to access attributes of the current <code>Event</code>:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<evaluate expression="booking.guests.add(currentEvent.guest)" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -182,7 +182,7 @@
|
||||
<para>
|
||||
Use <code>currentUser</code> to access the authenticated <code>Principal</code>:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<evaluate expression="bookingService.createBooking(hotelId, currentUser.name)"
|
||||
result="flowScope.booking" />]]>
|
||||
</programlisting>
|
||||
@@ -193,7 +193,7 @@
|
||||
Use <code>messageContext</code> to access a context for retrieving and creating flow execution messages, including error and success messages.
|
||||
See the <code>MessageContext</code> Javadocs for more information.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<evaluate expression="bookingValidator.validate(booking, messageContext)" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -202,7 +202,7 @@
|
||||
<para>
|
||||
Use <code>resourceBundle</code> to access a message resource.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<set name="flashScope.successMessage" value="resourceBundle.successMessage" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -232,7 +232,7 @@
|
||||
Use <code>externalContext</code> to access the client environment, including user session attributes.
|
||||
See the <code>ExternalContext</code> API JavaDocs for more information.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<evaluate expression="searchService.suggestHotels(externalContext.sessionMap.userProfile)"
|
||||
result="viewScope.hotels" />]]>
|
||||
</programlisting>
|
||||
@@ -244,14 +244,14 @@
|
||||
When assigning a variable in one of the flow scopes, referencing that scope is required.
|
||||
For example:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<set name="requestScope.hotelId" value="requestParameters.id" type="long" />]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
When simply accessing a variable in one of the scopes, referencing the scope is optional.
|
||||
For example:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<evaluate expression="entityManager.persist(booking)" />]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
|
||||
@@ -164,7 +164,7 @@ public class ViewFlowHandler extends AbstractFlowHandler {
|
||||
<programlisting language="java"><![CDATA[
|
||||
requestContext.getExternalContext().getRequestMap().get("portletWindowState");
|
||||
]]></programlisting>
|
||||
<programlisting language="el"><![CDATA[
|
||||
<programlisting><![CDATA[
|
||||
externalContext.requestMap.portletWindowState
|
||||
]]></programlisting>
|
||||
</sect2>
|
||||
@@ -178,7 +178,7 @@ externalContext.requestMap.portletWindowState
|
||||
<programlisting language="java"><![CDATA[
|
||||
requestContext.getExternalContext().getRequestMap().get("portletMode");
|
||||
]]></programlisting>
|
||||
<programlisting language="el"><![CDATA[
|
||||
<programlisting><![CDATA[
|
||||
externalContext.requestMap.portletMode
|
||||
]]></programlisting>
|
||||
</sect2>
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
<var name="searchCriteria" class="com.mycompany.myapp.hotels.search.SearchCriteria"/>]]>
|
||||
</programlisting>
|
||||
<para>and then reference this variable in one of the flow's JSF view templates through EL:</para>
|
||||
<programlisting language="xhtml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<h:inputText id="searchString" value="#{searchCriteria.searchString}"/>]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
@@ -280,7 +280,7 @@
|
||||
method an wrap it in a custom JSF DataModel so that the list can be used in a standard JSF DataTable
|
||||
component:
|
||||
</para>
|
||||
<programlisting language="xhtml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<h:dataTable id="bookings" styleClass="summary" value="#{bookings}" var="booking"
|
||||
rendered="#{bookings.rowCount > 0}">
|
||||
<h:column>
|
||||
@@ -347,7 +347,7 @@
|
||||
<code>hotels</code>
|
||||
list, and then place a "More Results" link below the table:
|
||||
</para>
|
||||
<programlisting language="xhtml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<h:commandLink id="nextPageLink" value="More Results" action="next"/>]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
@@ -394,7 +394,7 @@
|
||||
<code>commandLink</code>
|
||||
component:
|
||||
</para>
|
||||
<programlisting language="xhtml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<h:commandLink id="viewHotelLink" value="View Hotel" action="select"/>]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
@@ -483,7 +483,7 @@
|
||||
they can alternately be forced to use a normal form submit by setting ajaxEnabled="false" on the
|
||||
component):
|
||||
</para>
|
||||
<programlisting language="xhtml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<sf:commandLink id="nextPageLink" value="More Results" action="next" />]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<para>
|
||||
These responsibilities are illustrated in the definition of the <code>org.springframework.mvc.servlet.FlowHandler</code> interface:
|
||||
</para>
|
||||
<programlisting type="java">
|
||||
<programlisting language="java">
|
||||
public interface FlowHandler {
|
||||
|
||||
public String getFlowId();
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
Web Flow provides a Spring schema that allows you to configure the system.
|
||||
To use this schema, include it in one of your infrastructure-layer beans files:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:webflow="http://www.springframework.org/schema/webflow-config"
|
||||
@@ -38,7 +38,7 @@
|
||||
<para>
|
||||
Register your flows in a <code>FlowRegistry</code>:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<webflow:flow-registry id="flowRegistry">
|
||||
<webflow:flow-location path="/WEB-INF/flows/booking/booking.xml" />
|
||||
</webflow:flow-registry>]]>
|
||||
@@ -49,7 +49,7 @@
|
||||
<para>
|
||||
Deploy a FlowExecutor, the central service for executing flows:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<webflow:flow-executor id="flowExecutor" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -66,7 +66,7 @@
|
||||
If no flow-builder-services tag is specified, the default service implementations are used.
|
||||
When the tag is defined, you only need to reference the services you want to customize.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices">
|
||||
<webflow:flow-location path="/WEB-INF/flows/booking/booking.xml" />
|
||||
</webflow:flow-registry>
|
||||
@@ -77,7 +77,7 @@
|
||||
The configurable services are the <code>conversion-service</code>, <code>formatter-registry</code>, <code>expression-parser</code>, and <code>view-factory-creator</code>.
|
||||
These services are configured by referencing custom beans you define. For example:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<webflow:flow-builder-services id="flowBuilderServices"
|
||||
conversion-service="conversionService"
|
||||
formatter-registry="formatterRegistry"
|
||||
@@ -126,7 +126,7 @@
|
||||
Use the <code>parent</code> attribute to link two flow registries together in a hierarchy.
|
||||
When the child registry is queried, if it cannot find the requested flow it will delegate to its parent.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<!-- my-system-config.xml -->
|
||||
<webflow:flow-registry id="flowRegistry" parent="sharedFlowRegistry">
|
||||
<webflow:flow-location path="/WEB-INF/flows/booking/booking.xml" />
|
||||
@@ -144,7 +144,7 @@
|
||||
Use the <code>location</code> element to specify paths to flow definitions to register.
|
||||
By default, flows will be assigned registry identifiers equal to their filenames minus the file extension.
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<webflow:flow-location path="/WEB-INF/flows/booking/booking.xml" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -153,7 +153,7 @@
|
||||
<para>
|
||||
Specify an id to assign a custom registry identifier to a flow:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<webflow:flow-location path="/WEB-INF/flows/booking/booking.xml" id="bookHotel" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -162,7 +162,7 @@
|
||||
<para>
|
||||
Use the <code>flow-definition-attributes</code> element to assign custom meta-attributes to a registered flow:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<webflow:flow-location path="/WEB-INF/flows/booking/booking.xml">
|
||||
<flow-definition-attributes>
|
||||
<attribute name="caption" value="Books a hotel" />
|
||||
@@ -176,7 +176,7 @@
|
||||
<para>
|
||||
Use the <code>flow-location-patterns</code> element to register flows that match a specific resource location pattern:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<webflow:flow-location-pattern value="/WEB-INF/flows/**/*-flow.xml" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -188,7 +188,7 @@
|
||||
<para>
|
||||
Use the <code>flow-execution-listeners</code> element to register listeners that observe the lifecycle of flow executions:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<flow-execution-listeners>
|
||||
<listener ref="securityListener"/>
|
||||
<listener ref="persistenceListener"/>
|
||||
@@ -197,7 +197,7 @@
|
||||
<para>
|
||||
You may also configure a listener to observe only certain flows:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<listener ref="securityListener" criteria="securedFlow1,securedFlow2"/>]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
@@ -206,7 +206,7 @@
|
||||
<para>
|
||||
Use the <code>flow-execution-repository</code> element to tune flow execution persistence settings:
|
||||
</para>
|
||||
<programlisting type="xml"><![CDATA[
|
||||
<programlisting language="xml"><![CDATA[
|
||||
<flow-execution-repository max-executions="5" max-execution-snapshots="30" />]]>
|
||||
</programlisting>
|
||||
<sect3 id="repository-max-executions">
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
The source must be a single flow to convert.
|
||||
The resulting converted flow will be sent to standard output.
|
||||
</para>
|
||||
<programlisting language="shell">
|
||||
<programlisting>
|
||||
java org.springframework.webflow.upgrade.WebFlowUpgrader flow-to-upgrade.xml
|
||||
</programlisting>
|
||||
<sect3 id="upgrade-guide-definition-language-tool-warnings">
|
||||
|
||||
@@ -297,7 +297,7 @@ public class BookingValidator {
|
||||
</para>
|
||||
<sect2 id="plain-text-message">
|
||||
<title>Adding plain text messages</title>
|
||||
<programlisting type="java"><![CDATA[
|
||||
<programlisting language="java"><![CDATA[
|
||||
MessageContext context = ...
|
||||
MessageBuilder builder = new MessageBuilder();
|
||||
context.addMessage(builder.error().source("checkinDate")
|
||||
@@ -310,7 +310,7 @@ context.addMessage(builder.info()
|
||||
</sect2>
|
||||
<sect2 id="plain-text-message-intl">
|
||||
<title>Adding internationalized messages</title>
|
||||
<programlisting type="java"><![CDATA[
|
||||
<programlisting language="java"><![CDATA[
|
||||
MessageContext context = ...
|
||||
MessageBuilder builder = new MessageBuilder();
|
||||
context.addMessage(builder.error().source("checkinDate").code("checkinDate.notFuture").build());
|
||||
@@ -326,7 +326,7 @@ context.addMessage(builder.info().code("reservationConfirmation").build());]]>
|
||||
To create a flow-specific message bundle, simply define <code>messages.properties</code> file(s) in your flow's directory.
|
||||
Create a default <code>messages.properties</code> file and a .properties file for each additional <code>Locale</code> you need to support.
|
||||
</para>
|
||||
<programlisting type="properties"><![CDATA[
|
||||
<programlisting><![CDATA[
|
||||
#messages.properties
|
||||
checkinDate=Check in date must be a future date
|
||||
notHealthy={0} is bad for your health
|
||||
@@ -335,7 +335,7 @@ reservationConfirmation=We have processed your reservation - thank you and enjoy
|
||||
<para>
|
||||
From within a view or a flow, you may also access message resources using the <code>resourceBundle</code> EL variable:
|
||||
</para>
|
||||
<programlisting type="properties"><![CDATA[
|
||||
<programlisting><![CDATA[
|
||||
<h:outputText value="#{resourceBundle.reservationConfirmation}" />]]>
|
||||
</programlisting>
|
||||
</sect2>
|
||||
|
||||
Reference in New Issue
Block a user