我正在使用Scala的Play Framework 2.0。
所以我有一个针对帖子请求的动作。我想对输入数据进行一些验证,如果输入无效,则重定向到其他控制器操作(例如返回到prev页面并告诉用户输入无效)
我的代码看起来像这样:
if ( input.isNotValid )
Redirect( foo )
// ... more code
Redirect( bar )
所以验证是早期的,之后会有一行代码,并且在操作结束时我会重定向到另一个页面。
我的问题是,即使验证失败,页面也不会重定向到Foo。如果我这样做,代码就可以了:
if ( input.isNotValid )
Redirect( foo )
else
Redirect( bar )
我是否需要在动作结束时放置所有重定向和Oks?
我知道在Ruby on Rails中有时候会发生这种情况,并且解决方法是在每次重定向后放置“并返回”。我在Play Framework中还有什么需要做的吗?
答案 0 :(得分:4)
重定向不会将控制权返回给调用方法 - 您的代码将继续执行。重新安排您的代码,以便无效数据的重定向是该流的最终表达式,如下所示:
if ( input.isNotValid )
Redirect( foo )
else {
// ... more code
Redirect( bar )
}
此外,这可以通过更清楚地显示各种分支来使您的代码更清晰。
答案 1 :(得分:0)
尝试。 '返回重定向(foo)'在你原来的