繁体   English   中英

Play Framework 2.0重定向控制器操作

[英]Play Framework 2.0 Redirects in Controller Action

我正在使用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中还有什么需要做的吗?

重定向不会将控制权返回给调用方法 - 您的代码将继续执行。 重新安排您的代码,以便无效数据的重定向是该流的最终表达式,如下所示:

if ( input.isNotValid )
  Redirect( foo )
else {
  // ... more code
  Redirect( bar )
}

此外,这可以通过更清楚地显示各种分支来使您的代码更清晰。

尝试。 '原始中返回重定向(foo)'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM