2013-04-12 22 views
1

我玩命令模型結合我看着例子github上的項目,我使用的依賴,當有問題:Scalatra的數據綁定

"org.scalatra" % "scalatra-data-binding" % "2.2.0-RC1" 

以示例項目代碼,即

abstract class TodosCommand[S](implicit mf: Manifest[S]) extends ModelCommand[S] with ParamsOnlyCommand 
class CreateTodoCommand extends TodosCommand[Todo] { 
    val name: Field[String] = asType[String]("name").notBlank.minLength(3) 
} 
case class Todo(id: Integer, name: String, done: Boolean = false) 

當我使用命令[CreateTodoCommand] CommandSupport特性的命令時,我無法編譯,例如:

scala: type arguments [au.com.xxx.sapi.seo.CreateTodoCommand] do not conform to method command's type parameter bounds [T <: SeoServlet.this.CommandType] 
    val cmd = command[CreateTodoCommand] 
        ^

我不是避讓使用Scala,但我會假設,如ParamsOnlyCommand擴展命令並沒有這一行命令支持特性,那麼就應該沒有問題:

type CommandType <: org.scalatra.databinding.Command 

任何想法,爲什麼我收到這個問題?

乾杯,克里斯。

回答

1

您遇到問題的原因很可能是我們仍然鏈接到一個古老的示例版本,文檔不再適用。我以爲我已經抓住了文檔中的所有示例項目,並將它們轉移到https://github.com/scalatra/scalatra-website-examples,但顯然我錯過了這一項。對不起,麻煩!

我會看看我是否可以在今天解決這個問題,並提供一個編譯示例。同時,您可以嘗試將所有與Scalatra相關的依賴項更新到2.2.0版本 - 並查看是否可以立即解決任何問題。

Scalatra的最新穩定版本目前是2.2.1,但您需要小心命令,因爲我記得@casualjim說他改變了2.2.0和2.2之間的某種程度的工作方式0.1。

+0

我結束了使用Scalatra 2.2.1和「org.scalatra」%%「scalatra-commands」%「2.2.0」依賴關係,但幾乎沒有問題。 – Owen

0

在Scalatra 2.2.1中,「org.scalatra」%%「scalatra-commands」%「2.2.0」我沒有問題。但我不知道scalatra-data-binding也是獨立的。