我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Play Framework怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Play Framework怎么用

本篇内容介绍了“Play Framework怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

准备

安装 Java 5 以上版本及Play。

项目创建

打开CMD,执行:

play new helloworld

Play Framework怎么用

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

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

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

lib/ 包含应用依赖的标准.jar文件。

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

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

注:Play要求所有文件必须是UTF-8编码。

等等应用的.class文件在哪儿。恩,Play不使用class文件而是直接读取Java源文件,并使用Eclipse compiler编译他们。

这导致两件重要的事情。首先运行时Play会检查你对源文件所作的变更并自动加载它们。其次,当发生异常时,Play将创建更好的错误报告并附加相关代码。

运行应用

在cmd中键入play run helloworld,play启动Web Server并监听9000端口

Play Framework怎么用

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

Play Framework怎么用

现在,看下此页是如何显示的。

应用的主入口点配置在conf/routes文件中。它定义了应用所有可访问的URL。打开routes文件,会看到***个route:

GET     /    Application.index

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

创建标准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永远无需实例化和返回值。(译注:为了防止被使用者引入状态,并让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的模板.模板继承可用来创建复杂的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 class="lazy" data-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插入的位置。

创建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中创建:

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渲染此动作的缺省模板时,没有找到它。我们创建文件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通过缺省规则捕获了此URL

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

可以编辑helloworld/conf/routes文件在缺省规则前添加一条规则,提供更自然的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怎么用

执行测试

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}

重新执行

Play Framework怎么用

“Play Framework怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Play Framework怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Play Framework怎么用

本篇内容介绍了“Play Framework怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备安装 Java 5 以上版本及Play。
2023-06-17

怎么用源码分析Play Framework hotswap

这期内容当中小编将会给大家带来有关怎么用源码分析Play Framework hotswap,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Play Framework hotswap的卖点就在于 hot
2023-06-17

Play Framework框架的安装指南是什么

Play Framework框架的安装指南是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前提条件要运行 Play 框架,你需要 Java5 或更新 的 JDK 。如果
2023-06-17

android framework怎么使用

Android框架是用于开发Android应用程序的一套工具和库。要使用Android框架,您可以遵循以下步骤:1. 安装Android开发工具包(Android SDK):首先,您需要在计算机上安装Android开发工具包。您可以从And
2023-10-26

Python中怎么调用.net framework

今天就跟大家聊聊有关Python中怎么调用.net framework,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 安装python2.5和对应的pywin322. 下载iro
2023-06-17

.NET Framework 4.0框架怎么用

这篇文章主要为大家展示了“.NET Framework 4.0框架怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“.NET Framework 4.0框架怎么用”这篇文章吧。在.NET Fr
2023-06-17

windows下net framework怎么启用

这篇文章主要介绍“windows下net framework怎么启用”,在日常操作中,相信很多人在windows下net framework怎么启用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”windows
2023-07-04

Entity Framework Core工具怎么使用

本文小编为大家详细介绍“Entity Framework Core工具怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Entity Framework Core工具怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
2023-06-29

ADO.NET的Entity Framework工具怎么使用

本篇内容主要讲解“ADO.NET的Entity Framework工具怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ADO.NET的Entity Framework工具怎么使用”吧!C#
2023-06-17

Ubuntu10.10怎么配置Zend Framework

本篇内容介绍了“Ubuntu10.10怎么配置Zend Framework”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一步,打开apac
2023-06-13

Django REST Framework该怎么理解

今天就跟大家聊聊有关Django REST Framework该怎么理解,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.Django REST framework框架介绍Djang
2023-06-02

net framework怎么模拟鼠标

本篇内容介绍了“net framework怎么模拟鼠标”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!net framework模拟鼠标的方法
2023-07-04

Hibernate Framework查询怎么实现

本篇内容主要讲解“Hibernate Framework查询怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hibernate Framework查询怎么实现”吧!1.Hibernate
2023-06-17

windows下net framework怎么修复

本篇内容主要讲解“windows下net framework怎么修复”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows下net framework怎么修复”吧!net framewor
2023-07-04

windows中net framework怎么获取

本文小编为大家详细介绍“windows中net framework怎么获取”,内容详细,步骤清晰,细节处理妥当,希望这篇“windows中net framework怎么获取”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
2023-07-04

Vue3+Spring Framework框架怎么开发

本篇内容主要讲解“Vue3+Spring Framework框架怎么开发”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3+Spring Framework框架怎么开发”吧!一、环境搭建首先
2023-07-06

ADO.NET Entity Framework怎么创建EDM文件

这篇文章主要介绍“ADO.NET Entity Framework怎么创建EDM文件”,在日常操作中,相信很多人在ADO.NET Entity Framework怎么创建EDM文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
2023-06-17

win10怎么开启或安装.NET Framework

要在Windows 10上开启或安装.NET Framework,可以按照以下步骤操作:打开“控制面板”:在Windows任务栏的搜索栏中输入“控制面板”,然后点击打开该应用程序。在控制面板中,选择“程序”或“程序和功能”。点击“打开或关闭
2023-10-20

Entity Framework怎么使用Code First模式管理事务

今天小编给大家分享一下Entity Framework怎么使用Code First模式管理事务的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录