小编Sto*_*ran的帖子

播放框架路由和scala predef值

我在play framework 2.2上开发应用程序我有一个像这样的路由文件:

GET  /posting/          controllers.posting.BlogController.allPosts()
GET  /posting/:number   controllers.posting.BlogController.allPosts(number: Int)
Run Code Online (Sandbox Code Playgroud)

和BlogContriller:

object BlogController extends Controller {

  def allPosts(pageNumber:Int = 1, postsPerPage:Int = 10) = Action{
    val posts = Post.getLastNPosts(postsPerPage, postsPerPage*(pageNumber-1))
    val htmlPosts = new Html(new StringBuilder());

    for (post <- posts){
      val htmlPost = views.html.posting.post(post.getName, post.getText, post.getDate.toString)
      htmlPosts += htmlPost;
    }

    Ok(views.html.posting.index(htmlPosts))
  }
}
Run Code Online (Sandbox Code Playgroud)

当我试图加入时,我给出了一个错误:

Error:(14, -1) Play 2 Compiler:  C:\...\conf\routes:14: Compilation error[Using different overloaded methods is not allowed. If you are using a single method in combination with default parameters, …
Run Code Online (Sandbox Code Playgroud)

scala playframework playframework-2.2

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

是否可以在scala中装饰方法?

所以,我有一个对象,有方法,类似的东西:

object Connector {

  def createObject (id : Long, x : Double, y : Double, name : String, objtype : Int, layer : String) : String  = {
    //some code
  }

  def deleteObject (id : Long) : String  = {
    //some code
  }

  def findObject (name : String) : String  = {
    //some code
  }

  //some other methods
}
Run Code Online (Sandbox Code Playgroud)

例如,我想在所有方法中处理错误,使用相同的代码:

var res = domethod(methodParams)
if (res.indexOf("Error") > 0){
  doSomeOtherMethod() //that can fix error
  res = domethod(methodParams) //with same params
} …
Run Code Online (Sandbox Code Playgroud)

scala scala-2.11

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

如何在Slick 3中的DBIOAction组成内使用Future?

Slick 3通过使用flatMap方法提供DBIOAction组成。另外,我们可以在两个DBIOAction之间的后端进行一些计算。在大多数情况下,这很好用,但是当计算结果在诸如Future之类的monad中时,我该怎么办?有阻止方式的代码:

val fooQuery = TableQuery[FooTable]
val barQuery = TableQuery[BarTable]

def requestService(content: Iterable[String]): Future[Iterable[Long]] = ???

def modify(ids: Iterable[Long], change: String) = {

    val query = fooQuery.filter(_.id inSet ids).result.flatMap{ fooSeq =>
        val content = fooSeq.map(_.contentField)
        val requestServiceFuture = requestService(content)

        val serviceResult = Await.result(requestServiceFuture, 1.minute)
        barQuery.filter(_.id inSet serviceResult).delete //or other action
    }
    db.run(query.transactionally)
} 
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有等待的情况下异步执行此代码?

postgresql scala slick slick-3.0

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