play(一) play介紹,helloworld項目

1.下載安裝包並安裝:

(1)登錄http://www.playframework.org/ 直接點擊Download鏈接,下載.zip文件。選擇版本play-1.4.2.zip

wKiom1e-zq6BFzZeAAD4cjc5Dpo687.png-wh_50


(2) 直接解壓該文件,獲得一個文件夾。PATH環境變量指向該文件夾。Path=D:\Programes\Play\play-1.4.2

(3)解壓後的文件夾包含一些目錄:

documentation:包括一些manual和api文檔,保證我們在離線情況下可以參考。

samples:一些常用功能的實現例子項目。

(4)驗證安裝:

使用windows + R 鍵,打開命令行,輸入play命令,得到如下界面:

play

wKiom1e-0faQ7q9GAAAThFpyAaI288.png-wh_50

獲取命令行幫助:

play help


2.創建項目:

在命令行界面,切換到想要創建項目的目錄,輸入命令:

play new helloworld

wKiom1e-1YiwLg8vAAAYDOdENJ4207.png-wh_50

play new 命令在當前路徑下創建了一個helloworld目錄,其中包含一系列文件和目錄,重要的目錄和文件介紹:

app/ 包含應用核心,分爲models,controllers和views目錄。放置java代碼位置。

conf/包含應用的所有配置。application.conf應用主配置.routes定義url路由規則,messages國際化用。

public/包含所有外部可訪問的資源:js,css和image。

test/包含所有應用的測試程序。測試程序基於JUnit或Selenium。


3.運行項目:

(1)通過命令行方式進入應用的目錄(Application):

play run helloworld

打開瀏覽器鍵入http://localhost:9000 ,應用顯示了一個缺省的歡迎頁:

wKioL1fAF-HiVl6nAAGNKU_5Nwk487.png-wh_50

(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):

生成的項目結構如下:

wKiom1fBsW7jpYBpAABO2D0_Yks545.png-wh_50

(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' /}

<form action="@{Application.sayHello()}" method="GET">
    <input type="text" name="myName" /> 
    <input type="submit" value="Say hello!" />
</form>

@{…}標誌觸發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' /}

<h1>Hello ${myName ?: 'guest'}! </h1>
<a href="@{Application.index()}"> Back to Form</a>

Groovy的表達式:?: 。 如果myName參數沒有賦值的話,提供一個默認值。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章