2013-02-28 3 views
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() и добавления фильтра для его захвата и отображения правильного ответ? Если вы кодируете код образца, это было бы здорово.

ответ

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

def index = checkAccess{ request => 
    Ok("success") 
} 
+0

Хм, интересный функциональный подход. – ripper234

Смежные вопросы