2016-09-13 11 views
0

다음과 같은 문제가 있습니다. @Before을 사용하여 요청을 차단하고 특정 조건이 fullfiled인지 확인하고 싶습니다. 그렇지 않으면 전파를 방지하고 사용자에게 메시지를 반환합니다.PlayFramework 1.4는 조건이 채워지지 않은 후 전파를 방지합니다.

예외를 발생시키는 것 외에 다른 방법이 있습니까?

코드 예제 : 경로에

:

GET /someRoute MainController/someMethod 
    GET /otherRoute MainController/otherMethod 

컨트롤러에 @Before 주석이 방법은 컨트롤러에 있기 때문에, 당신은 모든 정적 기능을 사용할 수 있습니다

public class MainController{ 
@Before 
public static void check(){ 
// checking, if not fulfilled - render error and requested method is not invoked. 
} 
public static void someMethod() {/*some action*/} 
public static void otherMethod() {/*...other action*/} 
+0

코드를 일부 추가하십시오. 지금까지 무엇을 시도 했습니까? – abarisone

+0

이 컨트롤러의 메소드를 호출하는 모든 요청을 가로 챌 컨트롤러'@ Before' Adnotation에 넣기 만하면 - 사용자가 결과를 볼 수있는 권한이 있는지 확인하고 싶습니다 (설정에서 param을 얻는 것은 중요하지 않습니다) - 그렇다면 메소드가 호출됩니다 (그 자체는'@ Before'가없는 것처럼). 그렇지 않으면 페이지에 오류 메시지를 표시합니다. – Azbesciak

+0

추가 된 예 : – Azbesciak

답변

0

직접 대답.

public class MainController{ 
@Before 
public static void check(){ 
    // checking, if not fulfilled - render error and requested method is not invoked. 
    renderText("Error"); 
} 
public static void someMethod() {/*some action*/} 
public static void otherMethod() {/*...other action*/} 

전파를 중지하고 요청에 대한 응답을 보내드립니다 : 예를 들어 당신은 일반 텍스트를 반환합니다.

예를 들어 error() 또는 forbidden()을 사용할 수도 있습니다.

+0

Thx 많은데, 전파 전파를 렌더링하는 경우 잘 모르겠지만, 당신은 나를 보장 :) – Azbesciak