Pull to refresh

‘Hello World’ tutorial — Ваше первое приложение на Play framework (Часть 1)

Reading time 5 min
Views 21K
Original author: www.playframework.org
Это очень поверхностное руководство, которое только познакомит с базовым функционалом Play framework на примере создания приложения ‘Hello World’.


Познакомиться с Play framework можно в статье «Отличный Java MVC фреймворк — Play Framework». А в этом переводе описан процесс создания веб-приложения.

Требования


Убедитесь что у вас установлена Java машина не ниже 5 версии.

Так как мы будем активно пользоваться командной строкой, то лучше использовать Unix подобную ОС. Если вы работаете под Windows, Play framework также будет работать нормально, вам необходимо будет ввести несколько команд в командной строке.

Вам, конечно, потребуется текстовый редактор. Если вы привыкли использовать полнофункциональные IDE, такие как Eclipse или Netbeans вы можете использовать их. Однако с Play можно работая в простом текстовом редакторе, таким как Textmate, Emacs или VI. Это потому, что Play управляет компиляций и развертыванием самостоятельно. Мы скоро увидим, это…

Установка Play framework


Это очень просто. Необходимо только скачать последнюю версию и распаковать в любое удобное место. (Скачать)

Если Вы используете Windows, то хорошей идеей будет использовать путь к файлам без символа пробела, например c:\Play лучше, чем c:\Documents And Settings\user\play.


Чтобы работать эффективнее, необходимо добавить каталог Play в переменную окружения PATH. Это позволит использовать команду play в любой директории. Чтобы проверить, что всё работает, достаточно открыть командную строку и ввести play, он должен показать вам помощь по основным командам.

Создание проекта


Теперь, когда Play framework установлен, пришло время создать приложение. Создать его довольно легко и полностью управляется из командной строки. Play позволяет создавать стандартные шаблоны приложений.

Откройте консоль и введите:

~$ play new helloworld

Вас попросят ввести полное имя проекта. Введите «Hello world».

Команда play new создаст директорию helloworld/ и заполнит её рядом файлов и директорий, наиболее важные из которых:
app/ содержит ядро приложения: модели, контроллеры и представления. Он так же может содержать другие пакеты Java классов. Это каталог, в котором находятся исходники приложения.
conf/ содержит файлы конфигурации приложения, основной файл конфигурации — application.conf, в routes определены доступные адреса и файл messages, который используется для интернационализации приложения.
lib/ содержит дополнительные библиотеки Java.
public/ содержит публично доступные файлы, которые включают в себя JavaScript, файлы стилей и изображения.
test/ содержит все тестовые испытания приложения. Тесты могут быть написаны как для JUnit так и для Selenium.

Так как Play использует UTF-8 как единственную кодировку, очень важно, чтобы все текстовые файлы, размещенные в этих каталогах, были в UTF-8. Убедитесь в том, что текстовый редактор настроен соответствующе.


Возможно, Вы задаётесь вопросом, где хранятся .class файлы. Ответ – их нет: Play не использует .class файлы, он читает непосредственно файлы исходников. В фреймворке используется компилятор Eclipse для компиляции на лету.

Это даёт две очень важные вещи в процессе разработки. Во-первых, Play будет обнаруживать изменения, внесенные в любой исходный файл Java и автоматически перекомпилировать их во время выполнения. Во-вторых, когда происходит ошибка, Play будет создавать информативные отчеты об ошибках, показывая вам точный код источника ошибки.

Запуск приложения


Теперь Мы можем протестировать только что созданное приложение. Просто вернитесь в командную строку, перейдите в каталог helloworld/ и выполните команду play run. Play загрузит приложение и запустит веб-сервер на 9000 порту.

Вы можете увидеть результат работы приложение, открыв адрес http://localhost:9000 в браузере. Новое приложение имеет стандартную страницу приветствия. Приложение успешно создано.



Давайте посмотрим, как приложение отображает эту страницу.

Точка входа в приложение определяется в файле conf/routes. Он определяет все доступные адреса в приложении. Если открыть этот файл, Вы увидите:

GET / Application.index

Эта строка говорит Play, что, когда веб-сервер получает GET запрос /, он должен вызвать метод Application.index. В этом случае, Application.index это ярлык для controllers.Application.index, поскольку пакет controllers является неявным.

При создании приложений на Java Вы обычно используют единую точку входа, которая определяется таким способом:

public static void main(String[] args) {
  ... 
}


Play приложение имеет несколько точек входа, по одному для каждого URL. Мы называем эти методы методы action. Action определяются в специальных классах, которые мы называем контроллерами.

Давайте посмотрим, что представляет из себя контроллер controllers.Application. Откроем исходник helloworld/app/controllers/Application.java:

package controllers;
 
import play.mvc.*;
 
public class Application extends Controller {
 
	public static void index() {
		render();
	}
 
}


Вы можете заметить, что классы контроллеров наследуют play.mvc.Controller. Этот класс предоставляет полезные методы для контроллеров, такой как render() метод, который используется в функции index().

Функция index() определяется как public static void. Так определены методы действий. Методы действий являются статическими, так как контроллер класса никогда не создаётся. Они отмечены как public что бы разрешить фреймворку вызывать их в ответ на URL. Они всегда возвращают void.

Вызвать действие по умолчанию просто: достаточно вызвать метод render(), который даст знать Play что необходимо показать шаблон. Использование шаблонов является наиболее распространенным способом (но не единственным) для получения ответа HTTP.

Шаблоны являются простыми текстовыми файлами, которые расположены в директории /app/views. Так как мы не указали шаблон, по умолчанию для этого действия будет использоваться: Application/index.html

Что бы увидеть как выглядит шаблон, необходимо открыть файл helloworld/app/views/Application/index.html. Он содержит:

#{extends 'main.html' /}
#{set title:'Home' /}
 
#{welcome /}


Шаблон оформления кажется довольно простым. На самом деле, все, что вы видите теги Play. Play framework теги очень похожи на JSP taglib. Тег #{welcome /} — генерирует приветствие, которое вы видели в браузере.

Тег #{extends /} указывает Play, что этот шаблон наследует шаблон main.html. Наследование шаблонов мощная концепция, которая позволяет создавать сложные веб-страницы за счет повторного использования общих частей.

Откроем шаблон helloworld/app/views/main.html:

<!DOCTYPE html>
<html>
    <head>
        <title>#{get 'title' /}</title>		
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <link rel="stylesheet" type="text/css" media="screen" 
            href="@{'/public/stylesheets/main.css'}" />
        <link rel="shortcut icon" type="image/png" 
            href="@{'/public/images/favicon.png'}" />
    </head>
    <body>
        #{doLayout /} 
    </body>
</html>


Тег #{doLayout /} — место куда будет вставлено содержимое файла Application/index.html.

Окончание перевода будет во второй части, в которой будет разобрано работа с формами, изменение дизайна и создан автоматический тест.
(Часть 2)
Tags:
Hubs:
+12
Comments 8
Comments Comments 8

Articles