You are viewing the documentation for Play 1. The documentation for Play 2 is here.

Play framework documentation

Welcome to the Play framework documentation. This documentation is intended for the 1.0.3 release and may significantly differ from previous versions of the framework. Check the version 1.0.3 release notes.

This is a work in progress, feel free to ask any question not covered into these documents or report any errors. You can contribute to the documentation the same way you can contribute code.

Getting started

Your first steps with Play and your first 5 minutes of fun.

  1. Play framework overview
  2. Watch the screencast
  3. Five cool things you can do with Play
  4. Usability - details matter as much as features
  5. Frequently Asked Questions
  6. Installation guide
  7. Your first application — the ‘Hello World’ tutorial
  8. Set up your preferred IDE
  9. Sample applications
  10. Live coding script - to practice, and impress your colleagues with

Tutorial — Play guide, a real world app step-by-step

Learn Play by coding ‘Yet Another Blog Engine’, from start to finish. Each chapter will be a chance to learn one more cool Play feature.

  1. Starting up the project
  2. A first iteration of the data model
  3. Building the first screen
  4. The comments page
  5. Setting up a Captcha
  6. Add tagging support
  7. A basic admin area using CRUD
  8. Adding authentication
  9. Creating a custom editor area
  10. Completing the application tests
  11. Preparing for production
  12. Internationalisation and localisation

The essential documentation

Everything you need to know about Play.

  1. Main concepts
    1. The MVC application model
    2. A request life cycle
    3. Application layout & organization
    4. Development lifecycle
  2. HTTP routing
    1. The routes file syntax
    2. Routes priority
    3. Serving static resources
    4. Reverse routing: generate some URL
    5. Setting content types
    6. Content negotiation
  3. Controllers
    1. A Controller overview
    2. Retrieve HTTP parameters
    3. Advanced HTTP to Java binding
    4. Return a result
    5. Interceptions
    6. Session and Flash scopes
  4. The template engine
    1. Template syntax
    2. Template inheritance
    3. Create tags
    4. Extending the templates language
    5. Implicit objects
  5. The domain object model
    1. Properties simulation
    2. Setup a database to persist your model objects
    3. Persist your object model with Hibernate
    4. The stateless model
  6. A little of asynchronism using jobs
    1. Bootstrap jobs
    2. Scheduled jobs
    3. Suspendable requests
  7. Testing the application
    1. Writing tests
    2. Fixtures
    3. Running the tests
    4. Continuous integration
  8. Deployment options
    1. Standalone Play application
    2. Running on JEE application servers
    3. Google Application Engine
    4. Stax cloud hosting platform


Tips about everything and anything.

  1. Using Play modules, and the modules repository
  2. Security Guide
  3. More about the JPA support
  4. Using data validation
  5. How to configure logs
  6. Manage application.conf in several environments
  7. Setting up i18n
  8. Use cache and configure Memcached
  9. Put your application in production
  10. Sending e-mail
  11. OpenID integration
  12. Doing Ajax with JQuery

Distribution Modules

These optional modules are included with the standard distribution. More modules.

  1. CRUD
  2. Secure


Extended references for day-to-day hacking.

  1. The missing cheat sheet
  2. Browse API documentation
  3. Template tags and extensions reference
  4. Java extensions

Version notes

New versions of Play include certain changes.

  1. Play 1.0.3
  2. Play 1.0.2
  3. Play 1.0.1