日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初学Play Framework(一)

發布時間:2023/12/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初学Play Framework(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下載安裝jdk1.5以上,我用的是1.7

然后下載play-1.2.7,版本可用別的,將play的根目錄直接添加到環境變量Path

打開命令行?輸入“play?new?test”(名字自定義)

然后會提示是否確認你的項目名,直接enter

再輸入 “play?run?test”

打開?eclipse?import項目,會出現很多文件夾,play框架運用的是MVC模式


app文件夾便存放了Model、?View、Controller這三層

app/controllers?

?控制器就是一個java類,其中的每個public/static方法都是一個action。一個action方法就是一個java入口點,當接到一個http請求時,就會調用這個action。action方法從http中提取數據,讀取或更新model對象,并向http請求者發送一個封裝好的response結果。所以controller更像view和model之間的一座橋梁。

app/models

model是一系列完全面向對象語言特征的java類,它包含了數據結構和數據操作。無論何時,model對象都需要存儲到持久化存儲設備里。一般情況下,它們還包含一些jpa注釋和sql語句。

app/views

view為play提供的高效模板,控制器從model層獲取一些感興趣的數據應用到模板,并通過這個模板把數據裝飾的特別漂亮。這個包有HTML、JSON,或其它特別用于動態生成model展現的模板文件組成。

conf

這個文件夾中放置了play的配置文件,其中application.conf是play框架的核心配置文件,比如配置數據庫,應用程序端口號等基礎性的應用程序配置都在這里面。

routes是http請求和該請求調用的應用程序方法之間的映射。

==========================================================================

conf/routes

文件中的'#'為注釋。

routes文件列出了所有應用程序所需要的路由。

該配置文件的左欄為HTTP方法+URL路徑(這種組合就叫作一個路由),右欄為對應的java調用。

如?GET? ? ?/? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Application.index??

GET為http方法,而'/'則表示根目錄localhost:9000,所以上面紅色代碼的意思為訪問根目錄時(程序運行后的第一個頁面)調用Application.java中的index方法

app/controllers/Application.java


index調用了一個render()方法,而此時的render()方法則是返回了與java方法index同名的index.html文件,也就是運行程序后在網頁中輸入localhost:9000會根據ulr調用index方法進而顯示index.html

如何運行項目呢?看圖

右鍵點擊eclipse中的.launch文件,Run As 選擇第一個 運行

運行成功控制欄中會顯示 Server is up and running

然后進入瀏覽器輸入lcalhost:9000?則會顯示下面頁面


是因為我們的index.html頁面還沒有寫任何內容

app/view/Application/index.html

#{welcome /}就是我們上一個圖片顯示的頁面,如果刪掉則運行后的頁面會變成空白。

而#{extends 'main.html' /}表示index頁面繼承自main.html


可以看到main.html里定義了一些共通的元素,如所用的css和js庫等。

通過繼承的方式,可以使得模板的復用性大大增強。

#{doLayout /} 指示index.html的內容是插入此處的。

接下來就編輯index.html


我們把#{welcome /}刪除掉了,寫了一個?form,其中@{}的作用是自動生成可以調用Application.sayHello? action的URL

在routes中可以表示為?GET /Application/sayHello? ? ? ? ?Application.sayHello

運行程序后我們會調用Application.sayHello,但是我們沒有sayHello方法,所以去Application.java加上這個方法


在form中我們通過submit提交自己的姓名,調用action,找到sayHello方法通過render將我們的名字上傳到http,但是上傳到上面之后卻沒有頁面去顯示這個數據,所以我們需要寫一個同名sayHello.html來顯示信息。

app/views/Application/sayHello.html


通過${}將http中的信息取出,myName?:'Null'意思為先判斷myName是否存在,如果不存在就顯示Null(當然也可以寫其他的),如果存在就顯示取出的myName。

測試一下?輸入名字lucy

? ? ? ? ? ? ? ?

不輸入任何東西


可以看到,現在頁面的URL為localhost:9000/application/sayhello?myName=lucy

我們也可以在routes中進行優化


那么頁面URL會顯示為


添加一些基本校驗,編輯Application.java


@Required是校驗myName是否存在,如果不存在輸出Please?input?your?name.?而這些錯誤信息都是存放在play的flash?scope。對了,不要忘記import play.data.validation.*; (我忘記截上了)

?然后重定向到index.html頁面上,所以重新編輯index.html頁面??


如果錯誤信息存在就從flash?scope中取出顯示到頁面上。


對的,就是這樣。






總結

以上是生活随笔為你收集整理的初学Play Framework(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。