簡體   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