1.下载安装包并安装:

(1)登录http://www.playframework.org/ 直接点击Download链接,下载.zip文件。选择版本play-1.4.2.zip

play(一) play介绍,helloworld项目_第1张图片


(2) 直接解压该文件,获得一个文件夹。PATH环境变量指向该文件夹。Path=D:\Programes\Play\play-1.4.2

(3)解压后的文件夹包含一些目录:

documentation:包括一些manual和api文档,保证我们在离线情况下可以参考。

samples:一些常用功能的实现例子项目。

(4)验证安装:

使用windows + R 键,打开命令行,输入play命令,得到如下界面:

play

play(一) play介绍,helloworld项目_第2张图片

获取命令行帮助:

play help


2.创建项目:

在命令行界面,切换到想要创建项目的目录,输入命令:

play new helloworld

play(一) play介绍,helloworld项目_第3张图片

play new 命令在当前路径下创建了一个helloworld目录,其中包含一系列文件和目录,重要的目录和文件介绍:

app/ 包含应用核心,分为models,controllers和views目录。放置java代码位置。

conf/包含应用的所有配置。application.conf应用主配置.routes定义url路由规则,messages国际化用。

public/包含所有外部可访问的资源:js,css和p_w_picpath。

test/包含所有应用的测试程序。测试程序基于JUnit或Selenium。


3.运行项目:

(1)通过命令行方式进入应用的目录(Application):

play run helloworld

打开浏览器键入http://localhost:9000 ,应用显示了一个缺省的欢迎页:

play(一) play介绍,helloworld项目_第4张图片

(2)代码分析:

应用的主入口点配置在conf/routes文件中。它定义了应用所有可访问的URL。第一行配置:

GET     /                                       Application.index

它告诉Play,当/路径收到GET请求后调用Application.indexJava方法。它是controllers.Application.index的缩写,因为controllers包是隐式的附加的。

创建标准Java应用时,通常使用一个入口点即main方法。Play应用则有多个,一个URL一个。这些方法称为action方法。定义action方法的类称为controller。


4.使用Eclipse IDE:

(1)使用eclipsify命令将一个play应用变为Eclipse项目。

play eclipsify helloword

在执行上命令时,先切换到hellworld项目文件夹的上一级目录,例如我的是:

cd D:\java_workdir\play_workspace

(2)将生成的项目导入到eclipse中去(Existing Project into Workspace):

生成的项目结构如下:

play(一) play介绍,helloworld项目_第5张图片

(3)在生成的launchers:

在eclipse项目中,可以看到一个eclipse文件夹,这里边包括eclipsify命令为我们生成的3个lanchu文件,下面逐一介绍:

wKiom1fBtL-ClD-hAAASWX6ONdE311.png-wh_50

a.helloworld.launch:主launch文件,执行时,相当于执行命令play run。执行方法:右键该文件,选择 Run As > helloworld

b.Test helloworld.launch:相当于play test命令。执行方法:右键该文件,选择 Run As > Test helloworld 

c.Connect JPDA to helloworld.launch:连接Eclipse Debugger到一个已经运行的play实例,并且启动debugging session。执行方法:右键该文件,选择 Debug As > Connect JPDA to helloworld。

(4)安装Play的Eclipse插件:

将目录$PLAY_HOME/support/eclipse下的jar文件,拷贝到$ECLIPSE_HOME/dropins目录。 


5.使用项目:

5.1 创建表单:

修改文件:helloworld/app/views/Application/index.html:

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


     
    

@{…}标志触发Application.sayHello action。由于不存在action Application.sayHello,所以会报错。下面创建该action:

package controllers;

import play.*;
import play.mvc.*;

import java.util.*;

import models.*;

public class Application extends Controller {

    public static void index() {
        render();
    }
    
    public static void sayHello(String myName) {
        render(myName);
    }

}

增加了sayHello方法,action方法中定义了参数myName,所以该方法的值会被传入HTTP请求myName参数的值。如下:http://xxx?myName=xxx。

需要建相应的html文件,helloworld/app/views/Application/sayHello.html。

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

Hello ${myName ?: 'guest'}! 

 Back to Form

Groovy的表达式:?: 。 如果myName参数没有赋值的话,提供一个默认值。