PlayFramework 1.4在未满足条件后阻止传播

时间:2016-09-13 09:37:54

标签: java http playframework-1.x

我遇到以下问题:我希望o使用@Before拦截请求并检查是否满足某个条件;如果不是,则阻止传播并向用户返回消息。

除了抛出异常之外还有其他方法吗?

代码示例:

路线中的

   GET /someRoute  MainController/someMethod
   GET /otherRoute MainController/otherMethod
控制器中的

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*/}

1 个答案:

答案 0 :(得分:0)

由于使用@Before注释的方法在Controller上,您可以使用所有静态函数直接回答。 例如,如果要返回纯文本:

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()。