小编Jac*_*ter的帖子

Scala Anorm字符串替换是否会消除输入?

我正在使用Play!框架以及Anorm访问数据库.我经常看到如下例子,其中对象成员直接注入SQL语句.

我的问题是,这些投入是否已消毒?大多数示例如下所示:

object Person {
    def save(p:Person) {
        DB.withConnection ("default") { implicit connection =>
            SQL("""
                 INSERT INTO person(firstName,lastName)
                 values ({firstName}, {lastName})
                """
               ).on(
                "firstName" -> p.firstName,
                "lastName"  -> p.lastName
            ).executeUpdate()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我会试图通过黑客行为找出答案,但很容易犯错,所以我觉得要求更合适,我可以借鉴人群的智慧.

sql scala anorm playframework-2.0

23
推荐指数
1
解决办法
2579
查看次数

如何在Anorm中保存新对象时检索主键

我正在使用Scala Play!使用Anorm将数据模型持久化到数据库的框架.我在这里遵循示例代码:

case class Bar(id: Pk[Long], name: String)

object Bar {

  val simple = {
    get[Pk[Long]]("id") ~
    get[String]("name") map {
      case id~name => Bar(id, name)
    }
  }

  def findAll(): Seq[Bar] = {
    DB.withConnection { implicit connection =>
      SQL("select * from bar").as(Bar.simple *)
    }
  }

  def create(bar: Bar): Unit = {
    DB.withConnection { implicit connection =>
      SQL("insert into bar(name) values ({name})").on(
        'name -> bar.name
      ).executeUpdate()
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

试图扩展它,我想检索刚刚创建的主键并将其存储在案例类中.

如何检索主键?

sql scala playframework anorm playframework-2.0

18
推荐指数
1
解决办法
4396
查看次数

如何在Play [2.0]中使用Scala防止CSRF?

许多Web框架都有一个标准设置,用于使用auth令牌生成表单.

我是否必须手动创建此类措施,或者Play是否采用了防止CSRF的方法?

Play网站上的文档似乎没有解决这个问题.

security scala csrf playframework playframework-2.0

17
推荐指数
3
解决办法
3203
查看次数

如何在Play 2.0中路由URL,以便它们对结束斜杠无动于衷

我可以在一行中捕获以下两条路线吗?

GET     /game                    controllers.Main.app.gamelist
GET     /game/                   controllers.Main.app.gamelist
Run Code Online (Sandbox Code Playgroud)

regex scala routes playframework playframework-2.0

12
推荐指数
3
解决办法
3563
查看次数

CouchDB文档版本控制的最佳实践

在我的问题之后,我正在探讨在CouchDB中文档版本控制的通用方法的想法.虽然我想可能没有规范方法,但我有以下想法并且正在寻找反馈.

我希望尽可能保持可读的文档ID,因此存在的文档document1将包含指向系统上所有现有版本的指针文档.实际的修订文件,将在像document1/308ef032a3801a这里 308ef032a3801a是一些随机数或哈希值.

指针文件

{
    "_id" : "document1",
    "versions" : [ "document1/308ef032a3801a" ]
}
Run Code Online (Sandbox Code Playgroud)

版本文件

{
    "_id" : "document1/308ef032a3801a",
    ... actual content
}
Run Code Online (Sandbox Code Playgroud)

revision couchdb version

8
推荐指数
1
解决办法
1996
查看次数

模拟对象在游戏中[2.0]

我想通过在测试期间提供模拟对象来测试我的Play应用程序.在我的头顶,有几种方法可以解决这个问题.

  1. 在测试期间提供备用路径文件
  2. 使用依赖注入,并在运行时检查全局值

我不确定哪个更可行,或者如何去做.任何见解将不胜感激.

testing dependency-injection scala playframework playframework-2.0

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

如何在Play中直接返回协议缓冲区!2.0框架?

Play允许您直接在控制器中返回许多不同类型,例如JsValueXML与纯文本一起.我想扩展它以接受协议缓冲区,所以我可以写:

def page = Action {
    val protobuf = //...
    Ok(protobuf)
}
Run Code Online (Sandbox Code Playgroud)

scala protocol-buffers playframework-2.0

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

Playframework 2.0和Selenium入门

我正在使用Play framework 2.0.我想用Selenium编写一些基于浏览器的验收测试,但我之前从未使用过Selenium,必须少用Play或Scala集成它.

我可以复制和使用的基本设置是什么?

tdd selenium scala playframework playframework-2.0

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

我怎样才能玩我的游戏!2.0应用程序自动编译协议缓冲区?

我有一些.proto文件用于我的项目,我使用生成的Java源代码.我希望Play能够在项目编译期间自动编译并包含这些文件.

理想情况下,我会将.proto文件保存在app目录中,如下所示:

<play root>/
  app/
    protobuf/
      myfile.proto
    controllers/
      Application.scala
  ...
Run Code Online (Sandbox Code Playgroud)

一些要求如下:

  • 生成的源应该被包括在GIT中
  • Heroku 必须能够在部署期间编译protobufs

git scala heroku sbt playframework-2.0

2
推荐指数
1
解决办法
739
查看次数

无法访问游戏!内部演员系统

我正在遵循这里的文档,因为我想将Actors添加到应用程序提供的actor系统中.我尝试导入应用程序actor系统:

import play.libs.concurrent.Akka
Run Code Online (Sandbox Code Playgroud)

我正在使用sbt compile调用我的编译并收到以下错误

[error] app/controllers/Application.scala:9: object concurrent is not a member of package play.libs
[error] import play.libs.concurrent.Akka
[error]                  ^
[error] one error found
Run Code Online (Sandbox Code Playgroud)

CONF/pplication.conf

#Disable DBPlugin
dbplugin=disabled

#Disable DB evolutions
evolutionplugin=disabled

#Disable Eh Cache
ehcacheplugin=disabled


# Logger
# ~~~~~
# You can also configure logback (http://logback.qos.ch/), by providing a logger.xml file in the conf directory .

# Root logger:
logger.root=ERROR

# Logger used by the framework:
logger.play=INFO

# Logger provided …
Run Code Online (Sandbox Code Playgroud)

scala sbt akka playframework-2.0

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

如何在播放中的演员之间传递回复!和阿卡

我正在使用Play 2.0和Akka来部署Web应用程序.我根据责任分离了演员,因为演员经常需要在单个Web请求期间相互通信.

例如,给定一个管理注册设备的actor,它必须查询处理相关用户帐户的另一个actor:

class DeviceActor extends Actor {

  val accountActorRef = ...

  def receive = {
    case GetAccountByDeviceId(id:String) =>
      val accountId = getAccountIdAssociatedWithDevice(id)
      accountActorRef ? GetAccountById(accountId) map {
        case account: Account => sender ! account
      }
  }

}
Run Code Online (Sandbox Code Playgroud)

DeviceActor从我的控制器打电话时,我总是得到

akka.pattern.AskTimeoutException
Run Code Online (Sandbox Code Playgroud)

scala akka playframework-2.0

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

在Java字节码中,"Stack = 1,Locals = 1,Args_size = 1"是什么意思?

我做了一个简单的类来学习如何读取Java字节码.什么行

Stack=1, Locals=1, Args_size=1
Run Code Online (Sandbox Code Playgroud)

在folloiwng代码中意味着什么?

public Demo();
  Code:
   Stack=1, Locals=1, Args_size=1
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   return
  LineNumberTable: 
   line 1: 0
Run Code Online (Sandbox Code Playgroud)

java bytecode

0
推荐指数
1
解决办法
491
查看次数