首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

体验 Scala 语言的 Play Web 框架

概览 在本文中将介绍 Scala 的 Play Web 开发框架。...组织的名称将会作为项目中包的名称,Scala 的包名的命名规则和 Java 的包名命名规则一样,因此我可以可以给包命名为 baeldung.com 现在,我们可以进入到 baeldung-play-framework...controllers 目录用来保存 Scala 代码 views 目录用来保存 HTML 模板 conf 保存着路由配置既请求的 URL 地址和类以及函数的映射关系 public 目录保存着 Play...Play 服务器的输出时,没有看到任何新内容。...简单来说我们将从 URL 中读取两个数并且在页面中展示这两个数的和 为了实现这个功能,我们需要在 HomeController.scala 控制器中添加新的方法,这个方法接收两个参数,计算它们的和并传递到视图模板中渲染

2K50

Play For Scala 开发指南 - 第8章 用户界面

Twirl是无状态的 JSP或是其它的第三方模板引擎都会有一个上下文(Context)的概念,上下文中保存着当前请求的状态。...例如可以利用Twirl编写一个邮件模板,或者是利用Twirl生成静态Html文件等等。 大家可能觉得奇怪,没有了上下文,在模板中如何获取当前的请求呢?答案很简单:通过参数传递喽!...利用Scala的隐式参数的特性,在调用模板函数时不需要显示传入,编译器会自动传入。 Twirl基本语法 下面介绍几个常用的Scala表达式,方便你快速熟悉Twirl语法。...数据抽取 错误处理 页面渲染 在使用 Play 的 Form 相关功能之前,需要先导入如下路径: import play.api.data._ import play.api.data.Forms...email: 映射为邮箱格式的 scala.String 类型。 boolean: 映射为 scala.Boolean。 checked: 映射为 scala.Boolean。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Play For Scala 开发指南 - 第4章 第一个Play项目

    第一次启动时,由于SBT要下载大量的依赖,所以时间可能会久一点,倒数第二行表明,Play项目已经在9000端口启动成功了。...发布Play项目 Play项目的发布也是通过sbt命令完成的,进入命令行执行sbt dist,命令执行完成后,在target\universal目录下会生成应用文件play-scala-starter-example...bin目录中包含了应用的启动脚本play-scala-starter-example,与项目名称同名。...启动成功后,应用根目录下会生成一个RUNNING_PID文件,该文件保存了启动的进程PID。停止应用的命令如下: cat .....也就是说你完全可以使用文本工具开发Play项目,然后在命令行进行构建。但是为了提高开发效率,还是建议使用IDEA进行开发,不仅有语法提示上的优势,在Play项目调试时IDEA将发挥很重要的作用。

    2.8K40

    Cordova插件cordova-plugin-media-capture实现短视频的录制上传和播放

    下面就写写我实现功能过程中的一些问题吧,代码绝对完整并且按照步骤来一定可以成功!...2、本文主要讲在Android中的实现,IOS端目前还在适配,不少问题到时候再另外单独发一篇 实现逻辑 1、客户端利用cordova-plugin-media-capture插件调用摄像机权限进行视频拍摄...vue-video-player插件 1、vue项目中执行: npm install vue-video-player --save 2、在main.js入口文件中引入: import VideoPlayer...important; } /*点击按钮时不显示蓝色边框*/ .video-js .vjs-control-bar button{ outline: none; } 在上面步骤的main.js文件中引入我们刚刚创建的自定义...(); } }, 源码文件 由于项目中很多地方可能涉及到引用的本地的一些icon文件导致你们复制粘贴后不能正常运行,所以将此视频上传封装成了一个组件方便大家在项目中直接引用 这里直接将源文件和

    1.9K00

    来玩Play框架04 表单

    表单(form)是最常见的从客户往服务器传递数据的方式。Play框架提供了一些工具。它们可以从表单中提取数据,验证提交数据的合法性,或者在视图中显示表单。我先来介绍最简单的使用表单提交数据的方式。 ...增加表单 我可以用纯粹html的方式产生一个表单。在app/views下增加模板form.scala.html: 我介绍了表单最基本的使用方式。下面了解Play框架提供的其它的表单工具。 表单对象 在动作内部,可以创建一个对象来指代表单。表单的每个输入栏为表单对象的一个属性。...()中调用了表单对象中保存的数据。 ...分别输入合法和不合法的数据,观察Play返回的页面。 表单模板 我上面手动创建模板中的表单,并保持视图中的表单和表单对象一致。我还可以在模板中直接调用表单对象。

    940100

    Play For Scala 开发指南 - 第9章 Json 开发

    因为在Play中对于基本类型T(例如 String, Int, ...)以及Seq[T]已经提供了默认的隐式转换, 可以自动将其转换成对应的JSON类型,例如: //基本类型值 Json.obj("name...的JSON库里,整形和浮点型都使用JsNumber表示,这是一个略为糟糕的设计,因为会导致JSON数据无法在多语言环境下共享。...,所以定义在包对象中的隐式 Format 对象会被自动加载,而无需显示导入。...RFC 7159规定在为 Json 指定 Content-Type 时无需指定编码格式,并且指定编码格式是非法操作。客户端可以根据 Json 内容的前4个字节自动检测出正确的编码格式。...在 Json 处理领域,Play 和 Scala 有着天然的优势,一方面通过 Scala 的优雅语法以及 Play 的 Json DSL,我们可以轻松地构建和处理 Json;另一方面,相比于 Java

    1.6K20

    来玩Play框架07 静态文件

    Play框架的主要功能是提供动态响应的内容。但一个网络项目中必然有大量的静态内容,比如图片、Javascript文件、CSS文件等。我下面介绍如何在Play项目中加入静态文件。...默认路径 Play项目的静态文件一般存储在根目录下的public文件夹。...其它类型的静态文件,也都可以放入/public文件夹中。  在Play的模板中,也可以利用@routes.Assets.at("images/test.jpg")的方式,来调用静态文件的URL。...文件传输成功后,我提取出File类型的文件对象,并利用renameTo()方法,将文件保存到/public/uploads路径下。...用于routes中的设置,也可以用/assets/javascripts/test.js直接访问。 Play还可以用LESS来编写CSS文件。

    97460

    Play Mongo 模块简介

    Play Mongo 是一个专门为 Play Framework 开发的 MongoDB 模块, 该项目基于 MongoDB 官方的 Scala 驱动,并且提供了更多的实用功能,例如, 更简洁多样的数据库交方式...目前除了 Play Mongo,你还可以选择, Mongo Scala Driver ReactiveMongo Mongo Scala Driver 是 MongoDB 官方维护的 Scala 驱动,...Mongo Scala Driver 提供了一套基于 Java 的 Bson Api,无法与 Play Json 集成。...另外 Mongo Scala Driver 的数据库操作默认返回 Observable 类型,如果你忘记了调用 toFuture 方法,或是没有消费返回数据,则数据库操作实际上并不会被执行,在开发中很容易引入一些...小结 正是由于以上陈述的种种问题才最终导致 Play Mongo 的诞生。Play Mongo 基于官方驱动开发,可以为开发者提供最佳的稳定性,并能及时跟进 MongoDB 的版本升级。

    1.3K10

    Kafka Manager实现原理与填坑

    Kafka Manager 简介 Kafka Manager 可能是现在能找到的最好的可视化的Kafka管理工具, 感谢Yahoo-我人生中打开的一个网站-的开源; 使用Kafka Manager,...Manager的实现和在使用中遇到的几种坑; Kafka Manager实现 实现语言: Scala 用到的框架和第三方库: Play framework: Kafka-Mananger本质上是个Web...实现: 其实kafka manager的代码还是很清晰易阅读的, 如果熟悉scala和play的话应该没有难度. 不同本人也是现学现用, 好惭愧~~~....解决方案: group.id从配置文件中读取,每个kafka manager使用不同的group id; 客户端使用某些sdk(比如librdkafka)消费topic, 客户端crash后, 在kafka...是通过Await.ready来阻塞拿到result的, 然而在kafka manager中这个Await.ready没有给timeout, 是一直等待, 那咱们就给个timeout好了, 代码在ActorModel.scala

    3.6K20

    来玩Play框架01 简介

    Java大神们对这一问题嗤之以鼻。想要轻巧好用的框架?写一个给你就是了。Java程序员Guillaume Bort在JVM上创造了一个全新的框架Play framework。...在Play官网下载,我下载的是2.2.1版本。该版本的API文档为2.2.1API。 把下载的.zip文件解压缩,并将解压缩后的文件夹放到某个位置。比如/home/vamei/Util。...unzip play-2.2.1.zip mv play-2.2.1 /home/vamei/Util/ 文件夹里重要的是可执行文件play。...我一般是在/home/vamei/Util/下创建一个bin文件夹,并在该文件夹中创建play的软链接。...一个action会经过一系列的运算,产生一个响应。而控制器controller只是一个action的集合。在Java编程中,action是controller类的一个方法。

    1K20

    来玩Play框架01 简介

    Java大神们对这一问题嗤之以鼻。想要轻巧好用的框架?写一个给你就是了。Java程序员Guillaume Bort在JVM上创造了一个全新的框架Play framework。...在Play官网下载,我下载的是2.2.1版本。该版本的API文档为2.2.1API。 把下载的.zip文件解压缩,并将解压缩后的文件夹放到某个位置。比如/home/vamei/Util。...unzip play-2.2.1.zip mv play-2.2.1 /home/vamei/Util/ 文件夹里重要的是可执行文件play。...我一般是在/home/vamei/Util/下创建一个bin文件夹,并在该文件夹中创建play的软链接。...一个action会经过一系列的运算,产生一个响应。而控制器controller只是一个action的集合。在Java编程中,action是controller类的一个方法。

    1.4K70

    Play For Scala 开发指南 - 第10章 MongoDB 开发

    MongoDB 从诞生以来就争议不断,总结一下主要有以下几点: Schemaless 默认忽略错误 默认关闭认证 曾经的数据丢失问题 其实Schemaless和不支持事务是技术选型时的决定...另外 Mongo Scala Driver 的数据库操作默认返回 Observable 类型,如果你忘记了调用 toFuture 方法,或是没有消费返回数据,则数据库操作实际上并不会被执行,在开发中很容易引入一些...由于 Reactive Mongo 的种种问题,最终诞生了 Play Mongo。...authMode=scram-sha1" 定义模型层 我们建议在定义 Model 类时要显式声明 _id 属性,该属性为 MongoDB 的默认主键,如果没有,在插入时会自动生成。...} 由于这些隐式的 Format 对象是在模型层的包对象(package object)中创建的,所以使用时无需显式导入,编译器会自动加载。

    1.5K10

    来玩Play框架03 模板

    在上一章节中,我把字符串通过ok()返回给客户。我可以把一个完整的html页面放入字符串中返回。然而,现代的框架都提供了更好的方法——模板。模板将视图和数据分开。...在模板中,用Scala语言来调用参数。 使用模板 我首先创建一个模板,纯粹起视图功能。在app/views文件夹中,新建文件index.scala.html (如果已有,则删除并重新创建)。 <!...模板语言 这一部分,我把对象作为参数传给模板,然后在模板中显示对象中包含的数据。修改index.scala.html: @(title: String, content: String) 的结果中,两个字符串将填充在模板中的适当位置。 ? 上面把一个对象传递给模板。...我们还可以在模板中调用对象的属性或方法: @object.method() @object.field 模板控制 我还可以用Scala的语法,在模板中实现更复杂的逻辑。

    81950

    SBT 常用开发技巧

    SBT 一直以来都是 Scala 开发者不可言说的痛,最主要的原因就是官方文档维护质量较差,没有经过系统的、循序渐进式的整理,导致初学者入门门槛较高。...虽然也有其它构建工具可以选择(例如 Mill), 但是在短时间内基本上不可能撼动 SBT 的地位,毕竟它是 Scala 名正言顺的亲儿子。...当然还有另外一个原因可能导致其它构建工具永远没有机会,Scala 语言以其卓越的编译器著称,编译器支持的丰富特性需要和构建工具进行无缝对接,例如 Scala 的 Macro 需要和构建工具的增量编译密切配合...在 SBT 中,有三种方式可以设置 JVM 参数,下面分别介绍。...-Dprop=value 自动触发任务 在 SBT 任务名前加上 ~ ,则当有文件变化时则会自动触发该任务,例如我们在 Play 开发时,可以这样启动项目: sbt ~run 当我们修改了某些文件时,

    1.8K20

    数据科学、机器学习IDE概览

    然而,因为数据科学家除了可以选择传统的 IDE,还可以选择 Jupyter notebook 这样在浏览器中运行的新工具。...在 Visual Studio 下,数据科学家能够以便利的结构组织和管理相关文件,并使用 R 代码、R 文档、R Markdown、SQL 请求、保存的过程等的模板。...RTVS 可以绑定本地和远程的工作区,这让开发者可以在本地基于较小的数据集编写 R 代码,然后很方便地在更强大的云计算机中的更大的数据集上运行代码。...Scala IDE 的特性还包括代码格式化,智能缩进器,标记文件内的任意标识符,完整的语法高亮支持(包括注释、控制结构、嵌入的 XML),代码折叠。...Scala 插件使 IntelliJ IDE 可以支持 Scala、SBT、Scala.js、Hocon、Play 框架。 ?

    3.6K30

    Play Scala 2.5.x - Play with MongoDB 开发指南

    在开始阅读本文之前,请确保你熟悉Play-Json的相关开发,或是已经阅读过Play Scala 2.5.x - Play JSON开发指南。 1 为什么要Play with MongoDB?...MongoDB从诞生以来就争议不断,总结一下主要有一下几点: Schemaless 不支持事务 默认忽略错误 默认关闭认证 会导致数据丢失 其实Schemaless和不支持事务是技术选型时的决定,不应该受到吐槽...聊完争议,我们来看看MongoDB有哪些优点: 简单易用 BSON格式数据统一前后台 异步数据库驱动 没有事务,所以高并发时仍能保持很好的读写性能 Schemaless,方便快速原型 支持集群,MapReduce...Reactive-Mongo是一个基于Scala编写的异步非阻塞MongoDB驱动,该项目同时提供了Play框架的集成插件Play-ReactiveMongo。...2.2 开发示例 2.2.1 定义Model和Controller 在定义Model时最好显式声明_id属性,因为该属性为MongoDB的默认主键,如果没有,在插入时会自动生成。

    1.2K50

    为什么要创建开放源码的PlayScala社区?

    List是由head和tail拼接在一起的递归结构(这种设计在模式匹配时非常方便)。 List的定义可以写成如下形式: head :: tail head是首元素,tail是剩余的List。...在Scala中,这种简洁的设计比比皆是,例如我们再来看看如何构建一个Map实例: val map = Map("name" -> "PlayScala社区", "url" -> "http://www.playscala.cn...当然Scala的魅力远不止如此,当你慢慢了解它时,你会慢慢深陷而无法自拔。...讲了那么多,我只想告诉你Scala并不可怕,其实在Play Framework中,你根本就不需要抱着Scala书籍啃完再写代码,PlayScala社区会为你准备一篇30分钟的为Play初学者准备的Scala...希望在大家的一起努力下,PlayScala社区(http://www.playscala.cn)可以让更多的人了解并加入Play Framework的开发行列,不断增强Play Framework在国内的影响力

    83650

    在Scala中构建Web API的4大框架

    Play Framework ——Java和Scala的高速Web框架        Play Framework是一个开源的Scala框架,于2007年首次发布。...在撰写本文时,Play 2.6是Play的当前版本,已在开发中取代了Play 1。 优点 1. 与JVM密切相关,因此,Java开发人员会发现它很熟悉且易于使用。 2....它为资产汇编、格式处理、数据库集成等提供了广泛的框架支持结构 6. Play是开源的,它使采取者获得更高的安全性和持续审查的代码库。 缺点 1....Chaos ——用于在Scala中编写REST服务的轻量级框架        Chaos是Mesosphere的框架。...Chaos指的是在希腊创世神话中,宇宙创造之前的无形或虚无状态。同样,Chaos(框架)先于创建服务“宇宙”。 优点 1. Chaos易于使用,特别是对于那些熟悉使用Scala的用户来说。 2.

    2.1K40
    领券