2

我正在使用 Playframework 2.0(scala 版本),我想在我的一个控制器中覆盖“BadRequest”方法。我的控制器扩展了一个特征:

package controllers

import play.api._
import play.api.mvc._
import play.api.libs.json.JsValue
import play.api.libs.json.JsObject

/*
 * Simple trait to factor common code used by all controllers...
 */
trait AbstractController extends Controller {
 // Personal useful methods
 // ...
 // Implementation of an override of BadRequest ?
}

我的控制器:

package controllers

import play.api._
import play.api.mvc._
import play.api.Play.current
import play.api.libs.json._
import play.api.libs.json._
import play.api.libs.concurrent.Promise

object MyController extends AbstractController
{

 def myFunc (s: String) = {
    BadRequest(s) // should return what I'll define in MY BadRequest implementation
  }
}

我想要做的:仅为扩展 AbstractController 的控制器实现 BadRequest 的新部分(即返回带有错误详细信息的 JSON) 。播放文档建议在 Global Object(扩展 GlobalSettings)中执行此操作并覆盖 onBadRequest 方法。但我不想要一个如此全球化的方法……只在特定的控制器中。

什么是最好的解决方案?

谢谢你的帮助。格雷格

4

1 回答 1

1

我真的不明白这里有什么问题。只是覆盖它有什么问题?

trait AbstractController extends Controller {
  override val BadRequest = ... 

}
于 2012-10-04T09:48:54.990 回答