小编Rya*_*yan的帖子

在play框架java中检索POST请求中发送的请求正文字符串

我在Java中使用play框架.我想检索在POST请求中发送到播放服务器的整个请求主体.我怎样才能找回它?

java post playframework playframework-2.0

12
推荐指数
2
解决办法
2万
查看次数

玩:将表单字段绑定为双?

也许我只是忽略了一些显而易见的东西,但我无法弄清楚如何将一个表单字段绑定到一个Play控制器中的double.

例如,假设这是我的模型:

case class SavingsGoal(
timeframeInMonths: Option[Int],
amount: Double,
name: String
)
Run Code Online (Sandbox Code Playgroud)

(忽略我使用双倍的钱,我知道这是一个坏主意,这只是一个简化的例子)

我想像这样绑定它:

object SavingsGoals extends Controller {

    val savingsForm: Form[SavingsGoal] = Form(

        mapping(
            "timeframeInMonths" -> optional(number.verifying(min(0))),
            "amount" -> of[Double],
            "name" -> nonEmptyText
        )(SavingsGoal.apply)(SavingsGoal.unapply)

    )

}
Run Code Online (Sandbox Code Playgroud)

我意识到number帮助程序只适用于int,但我认为使用of[]可能允许我绑定一个double.但是,我得到了一个编译器错误:

Cannot find Formatter type class for Double. Perhaps you will need to import
play.api.data.format.Formats._  
Run Code Online (Sandbox Code Playgroud)

这样做没有用,因为API中没有定义双格式化程序.

这只是一个很长的方式来询问在Play中将表单字段绑定到double的规范方法是什么?

谢谢!

编辑:4e6指出了我正确的方向.这是我用他的帮助做的事情:

使用他的链接中的代码段,我将以下内容添加到app.controllers.Global.scala:

object Global {

    /**
     * Default formatter for the `Double` type.
     */
    implicit def doubleFormat: Formatter[Double] = new Formatter[Double] …
Run Code Online (Sandbox Code Playgroud)

scala playframework-2.0

10
推荐指数
2
解决办法
5356
查看次数

何时为Scala actor创建的线程会做出反应?

在阅读了reactScala中的演员使用之后,我认为react在没有多个react待定的情况下会分享相同的线程.似乎并非如此.

import scala.actors.Actor
import scala.actors.Actor._

class SleepyReactor extends Actor {
    def act() {
        loop {
            react {
                case x => {
                    println("reacting to %s on thread %s".format(x, Thread.currentThread.getName))
                    Thread.sleep(1000)
                    println("done with " + x)
                }
            }
        }
    }
}
val sleepyOne = new SleepyReactor
sleepyOne.start
sleepyOne ! "first" // runs on thread-5

// wait until completion

sleepyOne ! "second" // runs on thread-3
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么这些react是在不同的线程上运行,以及何时为一个演员创建一个新的线程react

我读到某个地方react是基于事件的,我认为这意味着"反应行动者"共享一个线程,如果一个人"反应",其他"反应行动者"将排队,直到第一个完成.我现在认为我错了.这是如何工作的,它与收到的有何不同?

scala

8
推荐指数
2
解决办法
3950
查看次数

PostgreSQL Evolutions:"PSQLException:致命:抱歉,已经有太多客户"

我正在尝试建立一个开发PostgreSQL服务器.它正在运行,我可以从命令行创建角色,表等.但是当我尝试使用Play应用evolution时,我收到以下错误:

org.postgresql.util.PSQLException: FATAL: sorry, too many clients already
Run Code Online (Sandbox Code Playgroud)

我能够连接,如果我故意输入语法错误,它会返回语法错误,所以我知道Play能够连接到数据库.但是,在演变成功应用后,我得到上面显示的错误.

我对PostgreSQl管理并不十分精通,所以我不确定问题是Play还是我的PostgreSQL安装.我刚刚在运行Mountain Lion的Mac上使用Heroku的Postgres.app安装它.

这是写入控制台的内容:

! @6cnb0blpp - Internal server error, for request [GET /] ->

play.api.db.evolutions.InvalidDatabaseRevision: Database 'default' needs evolution! [An SQL script need to be run on your database.]
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:427) ~[play_2.9.1.jar:2.0.4]
    at play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:448) ~[play_2.9.1.jar:2.0.4]
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:414) ~[play_2.9.1.jar:2.0.4]
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:412) ~[play_2.9.1.jar:2.0.4]
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) ~[scala-library.jar:0.11.3]
    at scala.collection.immutable.List.foreach(List.scala:45) ~[scala-library.jar:0.11.3]
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection Sleeping for 1000ms and trying again. Attempts left: 10. Exception: null
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire …
Run Code Online (Sandbox Code Playgroud)

postgresql scala playframework-2.0

8
推荐指数
2
解决办法
3万
查看次数

SlickJS,unslick()删除问题

下午好,

我目前正在使用SlickJS Carousel,我正在尝试使用该unslick();代码段在窗口宽度大于375时删除多个项目.

我可以看到调整大小功能的工作方式,当窗口大小小于375 slick();轮播显示时没有任何问题.

如果有人能看到什么出错,请告诉我.

谢谢.

JS

$(document).ready(function () {
    // Header Slider 
    $('.touchslider_one').slick({
        autoplay: true,
        infinite: true,
        speed: 1500,
        autoplaySpeed: 3000,
        dots: false,
        slidesToShow: 1,
        slidesToScroll: 1,
        fade: true,
        cssEase: 'linear',
    });
    onresize();
    $(window).resize(function () {
        onresize();
    });
});
function onresize(){
    checkWidth();
}
function checkWidth() {
    if ($(window).width() < 376 ) {
        // Boxes
        $('.touchslider_fourth').slick({
            autoplay: false,
            infinite: true,
            speed: 1500,
            adaptiveHeight: true,
            dots: false,
            slidesToShow: 1,
            slidesToScroll: 1,
            cssEase: 'linear'
        });
        // …
Run Code Online (Sandbox Code Playgroud)

jquery window-resize

7
推荐指数
2
解决办法
3万
查看次数

意外异常:新Play项目的编译失败

我在新创建的Play 2.1.3应用程序上收到此错误.我正在运行Java 7u25.我创建了新的应用程序,并在应用程序目录中使用"play run"运行它.

Unexpected exception
Compilation failed without reporting any problem!?
No source available, here is the exception stack trace:
->sbt.compiler.CompileFailed: 
     sbt.compiler.JavaCompiler$$anon$1.compile(JavaCompiler.scala:59)
     sbt.compiler.JavaTool$class.apply(JavaCompiler.scala:26)
     sbt.compiler.JavaCompiler$$anon$1.apply(JavaCompiler.scala:51)
     sbt.compiler.JavaCompiler$class.compile(JavaCompiler.scala:17)
     sbt.compiler.JavaCompiler$$anon$1.compile(JavaCompiler.scala:51)
     sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileJava$1$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply$mcV$sp(AggressiveCompile.scala:83)
     sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileJava$1$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(AggressiveCompile.scala:83)
     sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileJava$1$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(AggressiveCompile.scala:83)
     sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:101)
     sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileJava$1$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(AggressiveCompile.scala:82)
     sbt.classfile.Analyze$.apply(Analyze.scala:85)
     sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileJava$1$1.apply$mcV$sp(AggressiveCompile.scala:81)
     sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileJava$1$1.apply(AggressiveCompile.scala:81)
     sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileJava$1$1.apply(AggressiveCompile.scala:81)
     sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:101)
     sbt.compiler.AggressiveCompile$$anonfun$4.compileJava$1(AggressiveCompile.scala:80)
     sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:88)
     sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:60)
     sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:24)
     sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:22)
     sbt.inc.Incremental$.cycle(Incremental.scala:45)
     sbt.inc.Incremental$.compile(Incremental.scala:29)
     sbt.inc.IncrementalCompile$.apply(Compile.scala:20)
     sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:96)
     sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:44)
     sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:31)
     sbt.Compiler$.apply(Compiler.scala:79)
     sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:572)
     sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:572)
     sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578)
     sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578)
     scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
     sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
     sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
     sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:41)
     sbt.std.Transform$$anon$5.work(System.scala:71)
     sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
     sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
     sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
     sbt.Execute.work(Execute.scala:238)
     sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
     sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
     sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
     sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
     java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
     java.util.concurrent.FutureTask.run(Unknown Source)
     java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
     java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
     java.util.concurrent.FutureTask.run(Unknown Source)
     java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
     java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

scala playframework-2.0

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

如果测试失败,如何配置ScalaTest以中止套件?

我正在使用ScalaTest 2.1.4和SBT 0.13.5.我有一些长期运行的测试套件,如果单个测试失败可能需要很长时间才能完成(多JVM Akka测试).如果其中任何一个失败,我希望整个套件中止,否则套件可能需要很长时间才能完成,特别是在我们的CI服务器上.

如果套件中的任何测试失败,如何配置ScalaTest以中止套件?

scala scalatest

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

如何使用doc任务生成scaladoc后运行bash脚本?

我有一个简短的Bash脚本,可以对我的Scaladoc注释进行查找和替换,以生成指向第三方库的外部文档的链接.我希望每次使用doc任务生成Scaladocs时都会运行此脚本.

我怎样才能做到这一点?

sbt scaladoc

5
推荐指数
1
解决办法
630
查看次数

检查"isDefined"并一起映射到"get"

如何更有效地执行以下操作:

myoptionList.filter(_.isDefined).map(_.get)
Run Code Online (Sandbox Code Playgroud)

这需要两次迭代时间,有没有更好的方法来做到这一点?

scala scala-collections

3
推荐指数
1
解决办法
843
查看次数