标签: playframework-2.2

将MySql添加到playframework 2.2.1

我正在尝试使用play框架连接到mysql数据库.从我自己的搜索,我知道我需要在某处添加此行:

"mysql" % "mysql-connector-java" % "5.1.18"

但是,在每个文档/类似问题中,它都表示此行或者进入Build.scala文件或build.sbt文件,而我没有这些文件.当我创建我的应用程序(作为一个Java应用程序)时,它只给了我一个build.properties,plugins.sbt它在项目文件夹中.

有谁知道如何添加这条线?我需要创建其中一个文件吗?

我的build.properties档案:

 sbt.version=0.13.0
Run Code Online (Sandbox Code Playgroud)

plugins.sbt

// Comment to get more information during initialization
logLevel := Level.Warn

// The Typesafe repository
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

// Use the Play sbt plugin for Play projects
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.1")
Run Code Online (Sandbox Code Playgroud)

更新:添加后

addSbtPlugin("mysql" % "mysql-connector-java" % "5.1.18") 到我的插件文件:

在此输入图像描述

java mysql playframework playframework-2.2

7
推荐指数
1
解决办法
3830
查看次数

使用组合器播放2.2 JSON读取:如何处理嵌套的可选对象?

我在疯狂尝试解析Play Framework 2.2中的这个JSON结构:

val jsonStr = """{ personFirstName: "FirstName",
  personLastName: "LastName"
  positionLat: null,
  positionLon: null }"""
Run Code Online (Sandbox Code Playgroud)

我有2个案例类:

case class Position( val lat: Double, val lon: Double)
case class Person( firstName: String, lastName: String, p: Option[Position] )
Run Code Online (Sandbox Code Playgroud)

如您所见,在Person案例类中,Position不是强制性的.

我试图用这样的东西得到一个Person的实例

implicit val reader = (
  (__ \ 'personFirstName ).read[String] ~
  (__ \ 'personLastName ).read[String] ~
  ( (__ \ 'positionLat ).read[Double] ~
    (__ \ 'positionLon ).read[Double] )(Position)
)(Person)
Run Code Online (Sandbox Code Playgroud)

但我很快意识到我不知道如何处理该Option[Position]对象:Some(Position(lat,lon))如果指定'lat'和'lon'并且不是null,则意图是实例化,否则实例化None.

你会怎么处理?

json scala playframework scala-2.10 playframework-2.2

6
推荐指数
1
解决办法
4083
查看次数

Play中的部分视图存在吗?

我没有在Play Framework中发现任何部分视图的概念,类似于Ruby on Rails的部分视图.例如,如果有layouts/main.scala.html布局:

@(title: String)(content: => Html)(implicit flash: Flash)
<!DOCTYPE html>
<html>
    <head>
        <title>@title</title>

    </head>
    <body>
        <section class="content">@content</section>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

而且还有layouts/_footer.scala.html"部分",我如何_footer加入main?Play中有类似内容吗?

scala playframework playframework-2.2

6
推荐指数
1
解决办法
3472
查看次数

Play Framework:使用参数重定向到控制器方法

我正在使用PLAY framework 2.2.1构建一个Web应用程序,并且我试图在地址栏中显示所请求站点的所有可用http get查询参数,甚至是未在请求中设置的那些参数.如果未设置所有http get参数,我想使用默认值添加未设置参数并进行重定向.

我有一个可以通过GET请求的网站:

GET /test controllers.Application.test(q:String, w:String ?= null, f:String ?= null, o:String ?= null)
Run Code Online (Sandbox Code Playgroud)

这是我想要的方法controllers.Application:

public static Result test(String q, String w, String f, String o){

    ...

    // In case not all parameters where set
    if (reload == 1){
            return redirect(controllers.Application.test(qDefault, wDefault, fDefault, oDefault));
    }
    else {
        ok(...);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是redirect()接受String而不是Result对象.

我的第一个解决方案是写

return controllers.Application.test(qDefault, wDefault, fDefault, oDefault);
Run Code Online (Sandbox Code Playgroud)

但不幸的是,地址栏没有更新.

我的第二个解决方案是手动构建字符串:

return redirect("/test?q=" + query + "&f=" + f + "&w=" + w + "&o=" + …
Run Code Online (Sandbox Code Playgroud)

java http-get playframework playframework-2.2

6
推荐指数
1
解决办法
1万
查看次数

如何在Play Framework 2.2.1中读取文件?

我有一个静态文件,我想在我的一个Play Framework模型中阅读.该文件包含一些简单的文本.我找不到任何示例或API来显示存储此类资源的适当位置,其次是如何访问该资源.无论什么值得我使用Play for Scala,但我不认为这与此相关.

scala playframework playframework-2.2

6
推荐指数
2
解决办法
9670
查看次数

Play Framework 2.2.1 - 不区分大小写的路由

我是Play的新手,目前正在使用Play 2.2.1

我试图为"路由"中定义的端点实现不区分大小写的路由

例如,我在路径文件中定义了一条路由说/ accessLicense,它看起来如下所示

GET /accessLicense controller.MyController.accessLicense()

现在,如果我开火/访问许可证,它会很棒; 正如预期的那样,但是如果尝试使用fir/AccessLicense,/ AcCeSSLicenSe或任何其他拼写完全​​相同的单词的大写/小写字母组合,它就不起作用.

在此先感谢您的指导和支持!

java routing playframework playframework-2.2

6
推荐指数
1
解决办法
632
查看次数

通过播放框架应用程序将文件上传到S3而不"触摸"磁盘

我必须实现一个服务器,让一些用户可能将大量文件(数千兆字节的文件)上传到S3(虽然他们不知道它是S3).我已经在Python中实现了类似的东西,并使用Play框架实现了基本实现.

现在我的上传功能如下所示:

public Result uploadFile() {
      List<Http.MultipartFormData.FilePart> files = request().body().asMultipartFormData().getFiles();
      if (CollectionUtils.isNotEmpty(files)) {
          Bucket bucket = MY_BUCKET;
          UUID timeuuid;
          Promise<UploadResult> promise;
          ObjectNode responseMessage = Json.newObject();  
          for (Http.MultipartFormData.FilePart file : files) {
              timeuuid = TimeUUID.now();
              promise = Promise.promise(new UploadFunction(timeuuid, bucket, file.getFile(), obtainS3Connection()));
              responseMessage.set(file.getFilename(), TextNode.valueOf(timeuuid.toString()));
          }
          return accepted(responseMessage);
      } else {
          return badRequest("files empty");
      }
}
Run Code Online (Sandbox Code Playgroud)

我并不担心上传代码本身,实际上我已经实现了很多次.我担心的是让它变成Play!不将文件保存到磁盘,并且只发送文件"通过"我的服务器而不写入磁盘(即使是临时文件).我有一些处理涉及到某些内容的"客户端"加密,我可以做一个流.

我想知道Play是否已经这样做了?或者我将如何实现这一目标?

我假设Play(以及我之前版本的此服务中的Django)的作用是:

Upload --> Play       MyProcessing -------> S3
               \     /
                \   /
                 Disk
Run Code Online (Sandbox Code Playgroud)

我想要它做什么:

Upload --> Play --> MyProcessing -------> S3
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是我希望有可能在具有非常小的磁盘的实例上部署我的服务,并且我还希望保证在上载后没有人能够找到未加密的文件(如果我选择加密它). …

java file-upload amazon-s3 playframework playframework-2.2

6
推荐指数
1
解决办法
1312
查看次数

Play2创建客户端websocket

如何使用Scala在Play2中创建客户端WebSocket?

我应该使用外部库吗?我发现:http: //backchatio.github.io/hookup/

你知道其他选择吗?

scala websocket playframework-2.0 playframework-2.2

6
推荐指数
1
解决办法
960
查看次数

如何将提交哈希添加到播放模板?

我想将提交哈希放入Play Framework模板文件中,以便我可以通过REST GET调用查看构建信息.

在sbt我可以得到一个git commit hash和git branch name,无论如何在构建过程中将这些信息放入模板文件中?

build.sbt

name := "my-project"

val branch = "git rev-parse --abbrev-ref HEAD".!!.trim
val commit = "git rev-parse HEAD".!!.trim
val buildTime = (new java.text.SimpleDateFormat("yyyyMMdd-HHmmss")).format(new java.util.Date())

version := "%s-%s-%s".format(branch, commit, buildTime)
Run Code Online (Sandbox Code Playgroud)

sbt playframework playframework-2.1 playframework-2.2

6
推荐指数
1
解决办法
1526
查看次数

为什么子项目从2.2迁移到2.3后无法编译?

我切换到Play Framework 2.3并且现在出现错误,我的项目所依赖的子项目不再编译了.

这是我的Build.scala档案:

val main = Project(appName, file(".")).enablePlugins(play.PlayScala).settings(
    version := appVersion,
    scalaVersion := "2.10.4",
    libraryDependencies += jdbc,
    libraryDependencies += cache,
    slickCodeGen <<= slickCodeGenTask,
    sourceGenerators in Compile <+= slickCodeGenTask 
).dependsOn(dbGen)
Run Code Online (Sandbox Code Playgroud)

当我runcompile我的项目,target/scala-2.10仍然是空的.即使我尝试通过命令行(project dbGen然后compile)显式编译子项目,结果相同.在编译我的主项目时,我得到了一个java.lang.ClassNotFoundException,因为我的子项目没有编译.

它在Play 2.2中运行良好.知道我可能做错了什么吗?

scala playframework-2.2 playframework-2.3

6
推荐指数
1
解决办法
315
查看次数