在 Scala 中从控制器调用方法时遇到问题
having problems calling a method from controller in scala
我正在使用带有 scala 和 slick 的 playframework。
在我的 dto (dao) 中,我这样做:
class processDTO @Inject() (protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile]
with ProcessTemplatesComponent {
import driver.api._
private val processTemplates = TableQuery[ProcessTemplates]
def getAll(): Future[Seq[ProcessTemplatesModel]] = db.run { processTemplates.to[Seq].result }
}
我在控制器中这样做:
@Singleton
class ProcessesController @Inject() (processDTO: processDTO, actionBuilder: ActionBuilders) extends Controller{
def getProcesses() = actionBuilder.DynamicAction(name = "pureLuck").defaultHandler() {
request =>
processDTO.getAll().map(_.map(result => {
}))
.map(result => Ok(Json.toJson(result)))
}
}
现在我收到了这个错误
该错误告诉您您需要了解的内容。在文件顶部添加 import scala.concurrent.ExecutionContext.Implicits.global 应该可以修复它。
首先你需要导入执行上下文。 PlayFramework 有自己的上下文。添加此导入 play.api.libs.concurrent.Execution.Implicits._ Play documentation
您还需要 return 来自此块代码的内容:
_.map(result => {})
目前你return单位无法转化为json.
一个问题是缺少其他人提到的执行上下文。
由于您的 json 错误,您需要实施 Write converter 将您的 ProcessTemplatesModel
对象转换为 json。
我正在使用带有 scala 和 slick 的 playframework。
在我的 dto (dao) 中,我这样做:
class processDTO @Inject() (protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile]
with ProcessTemplatesComponent {
import driver.api._
private val processTemplates = TableQuery[ProcessTemplates]
def getAll(): Future[Seq[ProcessTemplatesModel]] = db.run { processTemplates.to[Seq].result }
}
我在控制器中这样做:
@Singleton
class ProcessesController @Inject() (processDTO: processDTO, actionBuilder: ActionBuilders) extends Controller{
def getProcesses() = actionBuilder.DynamicAction(name = "pureLuck").defaultHandler() {
request =>
processDTO.getAll().map(_.map(result => {
}))
.map(result => Ok(Json.toJson(result)))
}
}
现在我收到了这个错误
该错误告诉您您需要了解的内容。在文件顶部添加 import scala.concurrent.ExecutionContext.Implicits.global 应该可以修复它。
首先你需要导入执行上下文。 PlayFramework 有自己的上下文。添加此导入 play.api.libs.concurrent.Execution.Implicits._ Play documentation
您还需要 return 来自此块代码的内容:
_.map(result => {})
目前你return单位无法转化为json.
一个问题是缺少其他人提到的执行上下文。
由于您的 json 错误,您需要实施 Write converter 将您的 ProcessTemplatesModel
对象转换为 json。