2012-06-21 42 views

回答

18

你可以做一個重定向到「/」是這樣的:

redirect(uri:'/') 
+0

這隻有在索引視圖中存在'/'的UrlMapping時纔有效。 – doelleri

+0

它將重定向到站點的根上下文,但它恰好被定義取決於應用程序。 '/'映射在URLMappings中是標準的。 – proflux

+0

當應用程序位於像'example.org/yourapp /'這樣的子目錄中時,它甚至可以工作。 – str

6

爲什麼你需要redirect而不是renderredirect(uri:'/index.gsp')可能做的伎倆,但我想我會只是render(view:'/index')

+0

直接小心渲染索引。對簡單的靜態內容來說沒問題,一旦你添加一個控制器來拉入數據以顯示在主頁面上,你將把每個渲染語句切換到重定向。這個'redirect(uri:'/ index.gsp')'會給404嗎? – proflux

+0

既然他說它不是任何控制器的一部分,我認爲渲染它是安全的 - 但是如果它依賴於控制器的模型,那麼渲染視圖幾乎肯定會由於訪問缺少的模型而拋出異常。 – doelleri

+1

我正在往前看。我開發的大多數不重要的應用程序都是以靜態索引.gsp開頭的,最後以'[controller:'home',action:'index']'爲結尾。返回並修復了一大堆渲染(view:'/ index')'在你的應用程序中氾濫,你覺得不得不幫助其他人避免這個錯誤。如果它只是一個丟棄的應用程序,那麼這兩種方式都沒什麼大不了的。 – proflux

0

如果從索引控制器重定向,那麼你應該渲染(查看:」/index')