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.1 release and may significantly differs from previous versions of the framework. Check the release notes of the 1.0.1 version.

This is a work in progress, feel free to ask any question not covered into these documents or report any error. 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. Frequently Asked Questions
  5. Installation guide
  6. Your first application — the 'Hello World' tutorial
  7. Set up your preferred IDE
  8. Sample applications

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 an occasion 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

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
  3. Controllers
    1. A Controller overview
    2. Retrieve HTTP parameters
    3. Return a result
    4. Actions chaining
    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 you 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. Running the tests
    3. Fixtures
    4. Continuous integration


Tips about everything and anything.

  1. More about the JPA support
  2. Using data validation
  3. Application modularization
  4. How to configure logs
  5. Manage application.conf in several environments
  6. Setting up i18n
  7. Use cache and configure Memcached
  8. Put your application in production
  9. Sending emails
  10. OpenID integration

Other batteries included

Add instant power to your application by enabling one of these modules.

  1. CRUD
  2. Security
  3. Search
  4. Spring support
  5. Siena
  6. Extended CSS
  7. Google App Engine
  8. Google Web Toolkit
  9. Bespin editor
  10. Cobertura test coverage


Extended references for day to day hacking.

  1. Browse API documentation
  2. Template tags and extensions reference