Playframework: override BadRequest

浪子不回头ぞ 提交于 2020-01-02 10:37:29

问题


I'm using Playframework 2.0 (scala version) and I want to override "BadRequest" method in one of my controllers. My controller extends a trait:

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 ?
}

My controller:

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
  }
}

What I want to do: implement a new comportment of BadRequest (i.e. return a JSON with error details) only for controllers extending AbstractController. Play documentation suggest doing that in Global Object (extends GlobalSettings) and override onBadRequest method. But I do not want a so global method... only in specific controllers.

What is the best solution?

Thanks for your help. Greg


回答1:


I don't really see what the problem is here. What is wrong with just overriding it?

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

}


来源:https://stackoverflow.com/questions/12724281/playframework-override-badrequest

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!