在我的一个控制器中,我在beforeInterceptor闭包中编写了一些错误检查代码。Grails:在beforeInterceptor中呈现页面
if (getUser()?.courses?.size() == 0) {
render(view: '/base/errorMessage', model: [errorMessage: "You don't have any courses!"]);
return false;
}
该渲染调用显示一个很好的程序范围的错误页面。
但是,如果我返回false,则不会显示任何内容!如果我返回true,那么错误页面就会显示出来,但是该操作仍然执行(它不会被渲染,但逻辑仍然会被执行)。这需要重复的错误检查,否则拦截拦截器的目的。
重定向()调用仍然正常工作,但将错误显示移动到不同的操作是凌乱的。用户可以在他们的URL中看到/ app/error/errorMessage,而不是/ app/courses,并且可以直接进入错误页面。接下来就是将消息传递给该操作的问题 - flash.message? session.var?
有没有更好的方法?
这并没有真正帮助我 - 我只是想拦截一个控制器并向用户显示一条消息。这不是一个实际的例外。 –