0

假设我有这个动作结构:

def checkAccess(request: Request[AnyContent]) {
    if (shouldntGetAccess()) {
        // I want to return 404 and stop execution here
    }
}

def index = Action { implicit request =>
    checkAccess(request)

    Ok
}

我如何决定从 404 页面返回checkAccess()并停止执行?这是在 Play 1 中通过简单地调用实现的notFound(),但在 Play 2 中的行为似乎不同。

这可以通过checkAccess()抛出一些异常并添加过滤器来捕获它并呈现正确的响应来实现吗?如果您的代码提供了代码示例,那就太好了。

4

1 回答 1

2
def checkAccess(f: Request[AnyContent] => Result) = Action{ request => 
  if(shouldntGetAccess()){
  NotFound
}else{
  f(request)
}
}

def index = checkAccess{ request => 
  Ok("success")
}
于 2013-03-04T10:05:13.287 回答