我遇到以下问题:我希望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*/}
答案 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()。