成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PlayFramework怎么用

本篇內容介紹了“Play Framework怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于成都網站設計、成都做網站、趙縣網絡推廣、成都小程序開發(fā)、趙縣網絡營銷、趙縣企業(yè)策劃、趙縣品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供趙縣建站搭建服務,24小時服務熱線:18980820575,官方網址:jinyejixie.com

準備

安裝 Java 5 以上版本及Play。

項目創(chuàng)建

打開CMD,執(zhí)行:

play new helloworld

Play Framework怎么用

Play new 命令在當前路徑下創(chuàng)建了一個helloworld目錄,其中包含一系列文件和目錄,重要的如下:

app/ 包含應用核心,分為models,controllers和views目錄。.java生活的地方^_^

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

lib/ 包含應用依賴的標準.jar文件。

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

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

注:Play要求所有文件必須是UTF-8編碼。

等等應用的.class文件在哪兒。恩,Play不使用class文件而是直接讀取Java源文件,并使用Eclipse compiler編譯他們。

這導致兩件重要的事情。首先運行時Play會檢查你對源文件所作的變更并自動加載它們。其次,當發(fā)生異常時,Play將創(chuàng)建更好的錯誤報告并附加相關代碼。

運行應用

在cmd中鍵入play run helloworld,play啟動Web Server并監(jiān)聽9000端口

Play Framework怎么用

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

Play Framework怎么用

現在,看下此頁是如何顯示的。

應用的主入口點配置在conf/routes文件中。它定義了應用所有可訪問的URL。打開routes文件,會看到***個route:

GET     /    Application.index

它告訴Play,當/路徑收到GET請求后調用Application.indexJava方法。它是controllers.Application.index的縮寫,因為controllers包是隱式的附加的。

創(chuàng)建標準Java應用時,通常使用一個入口點即main方法。Play應用則有多個,一個URL一個。這些方法稱為action方法。定義action方法的類稱為controller。

打開helloworld/app/controllers/Application.java:

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

看到Application擴展了play.mvcController類。它提供了所有Controller需要使用的方法,如index動作中使用的render方法。

index方法定義成public static void,因為Controller永遠無需實例化和返回值。(譯注:為了防止被使用者引入狀態(tài),并讓Controller自然、干凈而如此設計。但副作用是render只能通過throw扔出結果,用異常當GOTO,可謂兵行詭道)。

缺省的index動作調用render方法,通知Play渲染一個模板。模板是app/views目錄下一個簡單的text文件。此處使用Application/index.html

打開helloworld/app/views/Application/index.html文件:

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

其中的內容是Play tag,類似JSP taglib.#{welcome/}tag生成了之前看到的歡迎消息。#{extends/}tags告訴Play此模板集成另一個main.html的模板.模板繼承可用來創(chuàng)建復雜的web也并重用公共部分。

打開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'}">         #{get 'moreStyles' /}          <link rel="shortcut icon" type="image/png" href="@{'/public/images/favicon.png'}">         <script src="@{'/public/javascripts/jquery-1.4.2.min.js'}" type="text/javascript" charset="utf-8"></script>         #{get 'moreScripts' /}      </head>     <body>         #{doLayout /}      </body> </html>

看到#{doLayout/}tag嗎?是Application/index.html插入的位置。

創(chuàng)建FORM

編輯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>

我們使用@{&hellip;}符號請求Play自動產生調用Application.sayHello動作的方法。刷新瀏覽器。

Play Framework怎么用

Oops,出錯了。因為引用了一個不存在的動作。需要在helloworld/app/controllers/Application.java中創(chuàng)建:

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

我們聲明了myName參數,它會自動映射到form提交的HTTP請求的myName參數。刷新瀏覽器。

Play Framework怎么用

輸入name提交,出現另一個錯誤.

Play Framework怎么用

因為Play渲染此動作的缺省模板時,沒有找到它。我們創(chuàng)建文件helloworld/app/views/Application/sayHello.html

#{extends 'main.html' /}  #{set title:'Home' /}   <h2>Hello ${myName ?: 'guest'}!</h2>     <a href="@{Application.index()}">Back to form</a>

然后刷新:

Play Framework怎么用

提供更好的URL

看下提交的url:

http://localhost:9000/application/sayhello?myName=chaos

它不夠RESTful。因為Play通過缺省規(guī)則捕獲了此URL

*    /{controller}/{action}     {controller}.{action}

可以編輯helloworld/conf/routes文件在缺省規(guī)則前添加一條規(guī)則,提供更自然的hello url

GET   /hello      Application.sayHello

Play Framework怎么用

自定義布局

可以修改模板更改布局。編輯helloworld/app/views/main.html文件:

Play Framework怎么用

添加驗證

給form添加一個驗證,要求name字段必填。我們通過Play validation實現。編輯helloworld/app/controllers/Application.java,在sayHello action處:

public static void sayHello(@Required String myName) {          if (validation.hasErrors()) {              flash.error("Oops, please enter your name!");              index();          }          render(myName);      }

并import play.data.validation.*。@Required告訴Play自動檢查myName字段是否填寫。如果驗證失敗,我們加入一條消息到flash scope中并重定向到index動作。flash scope允許在重定向時保持消息。

編輯helloworld/app/views/Application/index.html顯示錯誤消息

#{extends 'main.html' /}  #{set title:'Home' /}     #{if flash.error}      <p style="color:#c00">          ${flash.error}      </p>  #{/if}   <form action="@{Application.sayHello()}" method="GET">      <input type="text" name="myName" />       <input type="submit" value="Say hello!" />  </form>

輸入空參數并提交,OK起作用了。

Play Framework怎么用

自動化測試

Selenium Test

在測試模式下運行應用。在cmd中輸入play test helloworld。

Play Framework怎么用

打開瀏覽器,輸入http://localhost:9000/@tests啟動測試器。

Play Framework怎么用

執(zhí)行測試

Play Framework怎么用

Selenium測試用例通常寫成一個html文件。Play使用Play模板引擎生成這些文件。helloworld/test/Application.test.html文件:

*{ You can use plain selenium command using the selenium tag }*   #{selenium}      // Open the home page, and check that no error occured      open('/')      assertNotTitle('Application error')  #{/selenium}

此測試打開home頁,確認響應中沒有“Application error”。

讓我們來編寫自己的測試。編輯測試內容:

*{ You can use plain selenium command using the selenium tag }*   #{selenium}      // Open the home page, and check that no error occurred      open('/')      assertNotTitle('Application error')            // Check that it is the form      assertTextPresent('The Hello world app.')            // Submit the form      clickAndWait('css=input[type=submit]')            // Check the error      assertTextPresent('Oops, please enter your name!')            // Type the name and submit      type('css=input[type=text]', 'bob')      clickAndWait('css=input[type=submit]')            // Check the result      assertTextPresent('Hello bob!')      assertTextPresent('The Hello world app.')            // Check the back link      clickAndWait('link=Back to form')            // Home page?      assertTextNotPresent('Hello bob!')  #{/selenium}

重新執(zhí)行

Play Framework怎么用

“Play Framework怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網站,小編將為大家輸出更多高質量的實用文章!

網頁標題:PlayFramework怎么用
URL分享:http://jinyejixie.com/article14/psicge.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站改版、App設計、響應式網站、用戶體驗、服務器托管、動態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站優(yōu)化排名
藁城市| 颍上县| 新营市| 威宁| 东乌珠穆沁旗| 河曲县| 翁源县| 女性| 平果县| 综艺| 奉贤区| 开原市| 柳林县| 芜湖市| 若羌县| 台南市| 开江县| 阳谷县| 宁城县| 江孜县| 万载县| 祥云县| 烟台市| 江津市| 丽江市| 密云县| 彰武县| 乳山市| 英德市| 巧家县| 台中市| 龙口市| 颍上县| 克东县| 胶州市| 榆树市| 海宁市| 临桂县| 福清市| SHOW| 日土县|