2014-06-30 54 views

回答

1

我需要审计和记录一些东西,然后重定向通常流程

我能看到你这个打算,但我会建议Action Composition会是一个更好的方法。这样,您就可以拥有一个可重用,可测试,专注于代码的代码,只需执行您的审计和日志记录即可。

例如:(完全未经测试):

import play.api.mvc._ 

object AuditAction extends ActionBuilder[Request] { 
    def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[Result]) = { 
     Logger.info("Action is being audited") 
     YourAuditingLoggerHere.logAudit(request) 
     block(request) 
    } 
} 

而在你的控制器:

def submitAuditiableThing = AuditAction { implicit request => 
    YourBusinessLogicHere() 
    Ok(views.html.success) 
}