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.

My first WoOF applicationWalks through the simple steps to create and run an OfficeFloor (WoOF) web application.Maven and Eclipse plug-ins
Wireframe prototypingBuild working web prototypes and then later extend into a working web application.#{link}
Dynamic web pageRendering dynamic content.${bean ... $} , ${property}
Interactive web pageHandling of requests to provide interactive pages.#{link} , @HttpParameters
Dynamic navigation between pagesControlling the navigation between pages.@NextTask , @FlowInterface
Session stateStoring state between requests within the HTTP session.@HttpSessionStateful
Exception handlingHandling exceptions.@Parameter
Generating HTMLRender generated HTML.@UnescapedHtml
Sectioning contentSectional rendering content.<!-- {section} -->
Template InheritanceInheriting sectioned content.<!-- {:override} --> , <!-- {!} -->
Secure PageShows the ease of securing a pageTemplate Secure
Secure LinkDemonstrates the ease of securing a linkLink Secure
AuthenticationEasy means to provide authenticationAuthentication
TestTesting the applicationUnit/System/Integration testing

WoOF Template Extensions

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

AJAX / JSONService 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.

Dependency Injection (POJO)Dependency injecting a plain old java object (POJO).
Dependency Injection (Managed Object)Dependency injecting a customised managed object.
GovernanceManaging transactions with Governance.
Thread InjectionThread 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.

Extend OfficeFloorShows the ease of extending OfficeFloor / WoOF with your own plug-insExtensionSource

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.

Running within Servlet ContainerRunning 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 ContainerUse of Servlet container dependency injection (e.g. making use of EJBs).@EJB
Embedding Servlet Container within WoOFEmbedding Servlet functionality within WoOF.ServletContainerWoofApplicationExtensionService
Migrate JEE Servlet application to run in OfficeFloorMigrating an existing JEE Servlet application to run within OfficeFloor as a WoOF application.