Fork me on GitHub

OfficeFloor Tutorials

Once you have installed the OfficeFloor Eclipse plug-ins (by dragging the bottom left install icon to your Eclipse IDE) you have the tools ready for the below tutorials.

The tutorials are ordered so that each builds on the knowledge of the previous tutorials. It is therefore best to work though them in order.


The following tutorials cover developing OfficeFloor (WoOF) web applications.

The acronym WoOF standards for Web on OfficeFloor. It is a set of prefabricated plug-ins for OfficeFloor that enables OfficeFloor to work as a high performance Web Application Server. As you become more familiar with OfficeFloor, you will realise OfficeFloor is a very light weight and versatile plug-in application framework that provides open integration of software.

Tutorial Description Covered
My first WoOF application Walks through the simple steps to create and run an OfficeFloor (WoOF) web application. Maven and Eclipse plug-ins
Wireframe prototyping Build working web prototypes and then later extend into a working web application. #{link}
Dynamic web page Rendering dynamic content. ${bean ... $} , ${property}
Interactive web page Handling of requests to provide interactive pages. #{link} , @HttpParameters
Dynamic navigation between pages Controlling the navigation between pages. @NextTask , @FlowInterface
Session state Storing state between requests within the HTTP session. @HttpSessionStateful
Exception handling Handling exceptions. @Parameter
Generating HTML Render generated HTML. @UnescapedHtml
Sectioning content Sectional rendering content. <!-- {section} -->
Template Inheritance Inheriting sectioned content. <!-- {:override} --> , <!-- {!} -->
Secure Page Shows the ease of securing a page Template Secure
Secure Link Demonstrates the ease of securing a link Link Secure
Authentication Easy means to provide authentication Authentication
Test Testing the application Unit/System/Integration testing

WoOF Template Extensions

The following WoofTemplateExtensionSource implementations are available to extend the functionality of a WoOF template.

Tutorial Description Covered
AJAX / JSON Service AJAX requests and JSON payloads. @NotRenderTemplateAfter, @HttpJson, JsonResponseWriter

Inversion of Control

The previous tutorials have covered the built in dependency objects for WoOF. They have also covered Continuation Injection and Task Orchestration.

The following tutorials focus on extending the web application's functionality by using further inversion of control features of OfficeFloor.

Tutorial Description
Dependency Injection (POJO) Dependency injecting a plain old java object (POJO).
Dependency Injection (Managed Object) Dependency injecting a customised managed object.
Governance Managing transactions with Governance.
Thread Injection Thread injection to performance tune the application.

Extend OfficeFloor

OfficeFloor is a plug-in application framework that is highly extensible. For example, the WoOF functionality is provided by plug-ins (extensions) to OfficeFloor. The following tutorial covers creating an example extension for OfficeFloor.

Tutorial Description Covered
Extend OfficeFloor Shows the ease of extending OfficeFloor / WoOF with your own plug-ins ExtensionSource

WoOF and a JEE Servlet Container

These tutorials explain how to make use of WoOF within a JEE Servlet Container. They also explains how to migrate a Servlet application to run within OfficeFloor for OfficeFloor's inversion of control benefits.

Tutorial Description Covered
Running within Servlet Container Running the above web functionality within a JEE Servlet container. WoofServlet
Integration with a Java Server Page (JSP) Enables re-use of an existing JSP by providing it the necessary beans. @HttpApplicationStateful, @HttpSessionStateful, @HttpRequestStateful
Utilising dependency injection of the Servlet Container Use of Servlet container dependency injection (e.g. making use of EJBs). @EJB
Embedding Servlet Container within WoOF Embedding Servlet functionality within WoOF. ServletContainerWoofApplicationExtensionService
Migrate JEE Servlet application to run in OfficeFloor Migrating an existing JEE Servlet application to run within OfficeFloor as a WoOF application.