Index
A
- action state, flow definition / Understanding the flow definition
- addToCart method, controllers.js / What just happened?
- afterCompletion method
- about / Working with interceptors
- Ajax
- about / Handling a web service in Ajax
- web service, handling / Handling a web service in Ajax
- AngularJs
- using / Time for action – consuming REST web services via Ajax, What just happened?
- URL / What just happened?
- ng-repeat directive / What just happened?
- ng-click directive / What just happened?
- Apache Tiles
- reusability, enhancing through / Enhancing reusability through Apache Tiles
- views, creating for view state / Time for action – creating views for every view state
- template attribute / What just happened?
- <tiles*insertAttribute> tag / What just happened?
- Apache Tomcat
- audit logging
- about / Audit logging
- performing, interceptor used / Audit logging
B
- @Before annotation / What just happened?
- bean validation annotation
- URL / Bean validation
- build tool
- configuring / Configuring a build tool
C
- <C*forEach> tag / What just happened?
- <c*if> tag / What just happened?
- @Category annotation / Have a go hero – adding custom validation to a category
- @Component annotation / What just happened?
- @ContextConfiguration annotation / What just happened?
- @Controller annotation / Defining a controller
- about / What just happened?
- cart.jsp file / What just happened?
- Cart class
- creating / Time for action – implementing RESTful web services
- about / What just happened?
- CartController class
- creating / Time for action – consuming REST web services via Ajax
- about / What just happened?
- get method / What just happened?
- getCart method / What just happened?
- CartItem class
- CartRepository interface
- creating / Time for action – implementing RESTful web services
- about / What just happened?
- CartRestController class
- creating / Time for action – implementing RESTful web services
- about / What just happened?
- addItem method / What just happened?
- removeItem method / What just happened?
- CartRestControllerTest class / What just happened?
- CartServiceImpl class
- CartService interface
- creating / Time for action – implementing RESTful web services
- about / What just happened?
- category view
- adding, to products page / Time for action – showing products based on category, What just happened?
- checkout flow definition
- about / Understanding the checkout flow
- diagrammatic representation / Understanding the checkout flow
- <flow> tag / Understanding the checkout flow
- <var> tag / Understanding the checkout flow
- Order class / Understanding the checkout flow
- order variable / Understanding the checkout flow
- <action-state> definition / Understanding the checkout flow
- validate method, invoking / Understanding the checkout flow
- <evaluate> tag / Understanding the checkout flow
- InvalidCartWarning state / Understanding the checkout flow
- addCartToOrder state / Understanding the checkout flow
- collectCustomerInfo state / Understanding the checkout flow
- collectShippingDetail state / Understanding the checkout flow
- orderConfirmation state / Understanding the checkout flow
- processOrder state / Understanding the checkout flow
- thankCustomer state / Understanding the checkout flow
- cancelCheckout end state / Understanding the checkout flow
- views, creating for view states / Time for action – creating views for every view state
- collectCustomerInfo.jsp, creating / Time for action – creating views for every view state
- collectShippingDetail.jsp, creating / Time for action – creating views for every view state
- orderConfirmation.jsp, creating / Time for action – creating views for every view state
- InvalidCartWarning.jsp, creating / Time for action – creating views for every view state
- thankCustomer.jsp, creating / Time for action – creating views for every view state
- checkOutCancelled.jsp, creating / Time for action – creating views for every view state
- decision state, adding / Have a go hero – adding a decision state
- class-level request mapping
- classesToBeBound property, xmlView bean / What just happened?
- conditional redirecting
- about / Conditional redirecting
- performing, interceptor used / Conditional redirecting
- offer page requests, intercepting / Time for action – intercepting offer page requests
- ContentNegotiatingViewResolver
- content negotiation
- controller
- defining / Defining a controller
- class-level request mapping, adding / Time for action – adding class-level request mapping, What just happened?
- controllers.js
- creating / What just happened?
- refreshCart method / What just happened?
- initCartId method / What just happened?
- clearCart method / What just happened?
- addToCart method / What just happened?
- removeFromCart method / What just happened?
- CRUD operations
- about / What just happened?
- custom validation annotation
- creating / Have a go hero – adding custom validation to a category
- considerations / Have a go hero – adding custom validation to a category
- custom validation support
D
- data audit interceptor
- data binding, Spring tag libraries
- customizing / Customizing data binding
- form binding whitelisting, adding / Time for action – whitelisting form fields, What just happened?
- Data Transfer Objects (DTOs) / Serving and processing forms
- decision state, flow definition / Understanding the flow definition
- dependency injection (DI)
- about / The web application context
- development environment
- configuring / Configuring a development environment
- dispatcher servlet
- about / The dispatcher servlet
- Dispatcher servlet
- about / The dispatcher servlet
- configuring / Time for action – configuring the dispatcher servlet, What just happened?
- domain layer, web application architecture
- about / The domain layer
- domain object, creating / Time for action – creating a domain object, What just happened?
- domain objects
- unit testing / Time for action – unit-testing domain objects, What just happened?
E
- eclipse-wtp plugin / Understanding the Gradle script
- eclipse command / Understanding the Gradle script
- end state, flow definition / Understanding the flow definition
- environment variables, JDK
- setting up / Time for action – setting up environment variables
- errorRedirect property, PromoCodeInterceptor class
- about / What just happened?
- exception handler
F
- <form*form> tag / What just happened?
- <form*input> tag / What just happened?
- about / What just happened?
- type attribute / What just happened?
- flow-executor configuration / Understanding the checkout flow
- flow-registry configuration tag / Understanding the checkout flow
- flow definition
- about / Understanding the flow definition
- start state / Understanding the flow definition
- action state / Understanding the flow definition
- view state / Understanding the flow definition
- decision state / Understanding the flow definition
- subflow state / Understanding the flow definition
- end state / Understanding the flow definition
- flowHandlerAdapter / Understanding the checkout flow
- flowHandlerMapping parameter / Understanding the checkout flow
- for each loop / What just happened?
- for loop
- about / What just happened?
- form-backing bean / What just happened?
- forms, Spring tag libraries
G
- getCart method, CartController class / What just happened?
- getProductById method / What just happened?
- getProductsByFilter method / What just happened?
- getTotalPrice method
- Gradle
- installing / Installing Gradle
- build script, configuring / The Gradle build script for your project
- Gradle script
- about / Understanding the Gradle script
- GRADLE_HOME variable / Installing Gradle
H
- handler exception resolver
- implementing / Working with the handler exception resolver
- response status exception, adding / Time for action – adding the response status exception, What just happened?
- exception handler, adding / Time for action – adding an exception handler, What just happened?
- HandlerExceptionResolver implementations
- ResponseStatusExceptionResolver / Working with the handler exception resolver
- ExceptionHandlerExceptionResolver / Working with the handler exception resolver
- HandlerInterceptor interface
- preHandle method / Working with interceptors
- postHandle method / Working with interceptors
- afterCompletion method / Working with interceptors
- HandlerMapping implementations
- about / Handler mapping
- HandlerMapping interface
- about / Handler mapping
- HTTP requests
I
- IDE
- InitBinder annotation / What just happened?
- InMemoryCartRepository class
- creating / Time for action – implementing RESTful web services
- about / What just happened?
- InternalResourceView
- about / Resolving views
- InternalResourceViewResolver
- about / Resolving views
- internationalization
J
- Java bean validation
- about / Bean validation
- adding, to products page / Time for action – adding bean validation support, What just happened?, Have a go hero – adding more validation in the add products page
- custom validation support, adding / Custom validation with JSR-303 / bean validation, Time for action – adding custom validation support, What just happened?
- custom validation, adding to category / Have a go hero – adding custom validation to a category
- Java Runtime Environment (JRE) / Time for action – installing JDK
- JavaServer Pages Standard Tag Library (JSTL) / Time for action – adding Spring jars to the project, Serving and processing forms
- JDK
- about / Setting up Java
- setting up / Setting up Java
- installing / Time for action – installing JDK
- environment variables, setting up / Time for action – setting up environment variables
- JUnit
L
- LocalValidatorFactoryBean / What just happened?
- validationMessageSource property / What just happened?
M
- @MatrixVariable annotation / Using matrix variables
- @ModelAttribute annotation / What just happened?
- master detail view
- implementing / Time for action – implementing a master detail view
- matrix variables
- using / Using matrix variables
- product list, filtering / Time for action – showing the products based on filter, What just happened?
- enabling / What just happened?
- Maven build tool
- installing / Time for action – installing the Maven build tool
- configuring, on STS / Time for action – configuring Maven on STS
- message attribute / What just happened?
- messages_nl.properties file / What just happened?
- multipart request
- about / The multipart request in action
- image upload facility, adding to product page / Time for action – adding images to the product page
- product user manuals, uploading to server / Have a go hero – uploading product user manuals to the server
- multiple filters
- adding, to list products / Have a go hero – adding multiple filters to list products
N
- ng-click AngularJs directive / What just happened?
- ng-repeat AngularJs directive / What just happened?
O
- offer page requests, conditional redirecting
- intercepting / Time for action – intercepting offer page requests
- offerRedirect property, PromoCodeInterceptor class
- about / What just happened?
P
- @PathVariable annotation / What just happened?
- path attribute / What just happened?
- persistence layer, web application architecture
- about / The persistence layer
- repository object, creating / Time for action – creating a repository object, What just happened?
- pom.xml file
- postHandle method
- about / Working with interceptors
- Postman
- about / Time for action – consuming REST web services
- download page / Time for action – consuming REST web services
- installing / Time for action – consuming REST web services
- preHandle method
- about / Working with interceptors
- processAddNewProductForm method / What just happened?
- product controller
- ProductControllerTest class / What just happened?
- product details page
- ProductImageValidator class
- productToBeAdded object / What just happened?
- product validator
- ProductValidator class / Time for action – testing the product validator
- ProductValidatorTest class / What just happened?
- PromoCodeInterceptor class
- promoCode property / What just happened?
- errorRedirect property / What just happened?
- offerRedirect property / What just happened?
- promoCode property, PromoCodeInterceptor class
- about / What just happened?
R
- @Repository annotation / What just happened?
- @RequestMapping annotation / Time for action – examining request mapping, What just happened?, Defining a controller, What just happened?
- about / What just happened?
- Redirect After Post / What just happened?
- redirect view
- about / The redirect view
- RedirectView
- refreshCart method, controllers.js / What just happened?
- removeFromCart method, controllers.js / What just happened?
- request mapping
- request parameters
- about / Understanding request parameters
- product details page, adding / Time for action – adding the product details page
- master detail view, implementing / Time for action – implementing a master detail view, What just happened?
- multiple filters, adding to list products / Have a go hero – adding multiple filters to list products
- response status exception
- REST
- about / Introducing REST
- REST controllers
- RESTful web services
- implementing / Time for action – implementing RESTful web services
- REST web services
- consuming / Time for action – consuming REST web services
- consuming, via Ajax / Time for action – consuming REST web services via Ajax
S
- <security*authentication-manager> tag / What just happened?
- <security*http> tag / What just happened?
- <spring*message> tag / What just happened?, What just happened?
- service layer, web application architecture
- about / The service layer
- service object, creating / Time for action – creating a service object, What just happened?
- product domain object, accessing / Have a go hero – accessing the product domain object via a service
- servlet-api / Time for action – adding Spring jars to the project
- SessionLocaleResolver bean / What just happened?
- spring-oxm notation / What just happened?
- Spring Expression Language / Understanding the flow definition
- Spring MVC
- controller, defining / Defining a controller
- controller / The role of a controller in Spring MVC
- URI template patterns, using / Using URI template patterns
- Spring MVC architecture
- dispatcher servlet / The dispatcher servlet
- request mapping / Time for action – examining request mapping
- web application context / The web application context
- web application context configuration file / The web application context configuration
- view resolver / View resolvers
- web application architecture / An overview of the web application architecture
- Spring MVC interceptor
- about / Working with interceptors
- HandlerInterceptor interface / Working with interceptors
- configuring / Time for action – configuring an interceptor, What just happened?
- internationalization / Internationalization (i18n)
- Spring MVC project
- creating / Creating our first Spring MVC project, Time for action – creating a Spring MVC project in STS, What just happened?
- dependencies, managing / Spring MVC dependencies
- Spring jars, adding / Time for action – adding Spring jars to the project, What just happened?
- Java version properties, adding in pom.xml file / Time for action – adding Java version properties in pom.xml
- welcome page, creating / A jump-start to MVC, Time for action – adding a welcome page
- welcome page, adding / Time for action – adding a welcome page, What just happened?
- deploying / Deploying our project
- running / Time for action – running the project
- Spring Security
- using / Using Spring Security tags
- Spring Security tags
- using / Using Spring Security tags
- login page, adding / Time for action – adding a login page, What just happened?
- Spring tag libraries
- forms, serving / Serving and processing forms, Time for action – serving and processing forms, What just happened?
- forms, processing / Serving and processing forms, Time for action – serving and processing forms, What just happened?
- data binding, customizing / Customizing data binding
- text messages, externalizing / Externalizing text messages
- Spring Security tags / Using Spring Security tags
- Spring Test Context
- incorporating, to test / Integration testing with the Spring Test Context framework
- Spring Tool Suite (STS) / Configuring a development environment
- installing / Time for action – installing Spring Tool Suite
- URL / Time for action – installing Spring Tool Suite
- Tomcat, configuring / Time for action – configuring Tomcat on STS, What just happened?
- Maven, configuring / Time for action – configuring Maven on STS
- Spring MVC project, creating / Creating our first Spring MVC project, What just happened?
- Spring validation
- about / Spring validation
- using / Spring validation
- adding / Time for action – adding Spring validation, What just happened?
- combining, with bean validation / Time for action – combining Spring and bean validations, What just happened?
- adding, to product image / Have a go hero – adding Spring validation to the product image
- Spring Validator interface / What just happened?
- Spring Web Flow
- about / Working with Spring Web Flow
- order processing service, implementing / Time for action – implementing the order-processing service
- checkout flow, implementing / Time for action – implementing the checkout flow
- flow definition / Understanding the flow definition
- checkout flow definition / Understanding the checkout flow
- application, running / Time for action – creating views for every view state, What just happened?
- start state, flow definition / Understanding the flow definition
- static resources
- serving / Serving static resources, Time for action – serving static resources, What just happened?
- images, adding to product detail page / Time for action – adding images to the product detail page
- subflow state, flow definition / Understanding the flow definition
T
- testing
- integrating, with Spring Test Context / Integration testing with the Spring Test Context framework
- tests
- adding, for cart / Have a go hero – adding tests for cart
- adding, for remaining REST methods / Have a go hero – adding tests for the remaining REST methods
- text messages, Spring tag libraries
- Tomcat web server
- installing / Time for action – installing the Tomcat web server
- configuring, on STS / Time for action – configuring Tomcat on STS, What just happened?
- transitive dependencies / What just happened?
U
- UnitsInStockValidator class / What just happened?
- unit testing
- about / Unit testing
- domain objects / Time for action – unit-testing domain objects, What just happened?
- URI template patterns
- using / Using URI template patterns
- category view, adding to products page / Time for action – showing products based on category, What just happened?
- user interface (UI) / Working with Spring Web Flow
V
- validationMessageSource property, LocalValidatorFactoryBean / What just happened?
- view resolver
- about / View resolvers
- view resolvers
- about / Resolving views
- views
- resolving / Resolving views
- InternalResourceView / Resolving views
- VelocityView / Resolving views
- FreeMarkerView / Resolving views
- TilesView / Resolving views
- RedirectView / Resolving views
- redirect view / The redirect view
- view state, flow definition / Understanding the flow definition
W
- <web-app> tag / Time for action – adding a login page
- @WebAppConfiguration annotation / What just happened?
- war plugin / Understanding the Gradle script
- web application architecture
- domain layer / The domain layer
- persistence layer / The persistence layer
- service layer / The service layer
- overview / An overview of the web application architecture
- customers, listing / Have a go hero – listing all our customers
- web application context
- about / The web application context
- name and location, tweaking / Time for action – understanding the web application context, What just happened?
- configuration file / The web application context configuration
- web server
- installing / Installing a web server
- web service
- handling, in Ajax / Handling a web service in Ajax