不幸的是,目前还没有一种从Java创建和使用过滤器的好方法。但是,您可以使用Scala轻松完成所需的工作。
创建一个新文件,
app/filters/AddResponseHeader.scala其中包含:
package filtersimport play.api.mvc._import scala.concurrent.Futureimport scala.concurrent.ExecutionContext.Implicits.globalobject AddResponseHeader extends Filter { def apply(f: (RequestHeader) => Future[SimpleResult])(rh: RequestHeader): Future[SimpleResult] = { val result = f(rh) result.map(_.withHeaders("FOO" -> "bar")) }}并创建一个
app/Global.scala包含以下内容的新文件:
import filters.AddResponseHeaderimport play.api.mvc.WithFiltersobject Global extends WithFilters(AddResponseHeader)
那应该对每个响应应用一个新的响应头。
更新 :有一种方法可以在
Global.java文件中使用它:
@Overridepublic <T extends EssentialFilter> Class<T>[] filters() { return new Class[] {AddResponseHeader.class};}并将
object AddResponseHeader以上内容更改为
class AddResponseHeader。



