Play之Scala-Web項目運行流程-簡單分析(2)

爲了方便開發,咱們將此工程轉化爲Eclipse項目,而後經過sftp下載到本地並導入到Eclipse裏分析! html

若是您的項目還在運行,就關了(經過Ctr+C吧)它,而後進入play命令行下: java

[root@centos6-vb eee]# ls
app  build.sbt  conf  logs  project  public  README  target  test
[root@centos6-vb eee]# /opt/play/play-2.2.2/play 
[info] Loading project definition from /data/workspace/eee/project
[info] Set current project to eee (in build file:/data/workspace/eee/)
       _
 _ __ | | __ _ _  _
| '_ \| |/ _' | || |
|  __/|_|\____|\__ /
|_|            |__/

play 2.2.2 built with Scala 2.10.3 (running Java 1.7.0_17), http://www.playframework.com

> Type "help play" or "license" for more information.
> Type "exit" or use Ctrl+D to leave this console.

[eee] $ eclipse
[info] About to create Eclipse project files for your project(s).
[info] Successfully created Eclipse project files for project(s):
[info] eee
[eee] $

導出到本地Windows開發環境下(不會的看我另外一篇博客:SecureCRT與sftp) 編程

--------------------------------------------------------------------------------------------------- centos

下面是咱們導入到Eclipse後的項目結構:(若是導入不成功的話,就在Eclipse裏新建工程,名字和那個工程一致,就能行了) api

1、路由 瀏覽器

有過Rails編程經驗的人都知道路由這個概念,路由的功能就是尋路--用戶發起一個請求怎麼能被正確處理?就靠它了!咱們看看路由配置信息: mvc

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET     /                           controllers.Application.index

# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file               controllers.Assets.at(path="/public", file)

只關注:  GET     /       controllers.Application.index   這條信息就行了,指明瞭在默認缺省狀況下,經過get命令所指向的處理Controller處理 app

controllers.Application的邏輯: 框架

package controllers

import play.api._
import play.api.mvc._

object Application extends Controller {

  def index = Action {
    Ok(views.html.index("Your new application is ready."))
  }

}

index是Controller "Application" 的一個action(action的概念不說了),只有一條語句: eclipse

Ok(views.html.index("Your new application is ready."))

看經典介紹:
任何Action對象必須得到反返回的Result對象
Ok繼承於Result對象,因此返回Ok表示其包含的內容爲HTTP 200 OK狀態(在Scala裏默認返回最後一行)

咱們如今無論上面的OK裏的內容,咱們先從最簡單的開始學習,把那行改成:

Ok("歡迎使用Play!")

上傳後運行查看瀏覽器結果:

由於此時傳入Ok中對象類型爲String,Ok將其Content-type做爲text/plain輸出

再改一下:

import play.api.templates._

Ok(Html("<strong>歡迎使用Play!</strong>"))

運行效果:

此須要返回並告知Ok這是段Html格式內容而非純文本。

到此,咱們暫時先這麼總結:

瀏覽器 ( http://localhost:9000/ )-> Play 框架 (conf/routes) -> 對應的Controller代碼 (app/controllers/Application.scala) -> 對應的返回Action (def index = Action {...}) 的方法 -> 對應的可返回Result的代碼 (OK(...)) -> 要返回的正文內容 ( "..." 純文本 或 Html("...) HTML格式)

參考博客:

Scala語言與Play框架入門教程 (初稿)http://cn.tanshuai.com/a/getting-started-scala-play

相關文章
相關標籤/搜索