2011-05-30 68 views
1

我有這樣的事情在我的控制器:Grails的控制器語法修正

class houseController = { 

... 
code 
... 

if(params.answer == null) 
redirect(action:'xxx') 

... 
code 
... 

} 

我的疑問是,在控制器的中間重定向。由於不在控制器的末端,是否需要任何「返回」或類似的東西?或者,在重定向完成之後,所有之後的代碼都被遺忘了,而不是保存在內存中?我的觀點是,我不想用不好的代碼浪費無用的資源。

回答

5

執行redirect之後發生的任何代碼,但如果您在執行重定向後嘗試寫入響應,則會發生異常。

在實踐中,通常不希望在當前操作執行redirect後執行任何東西,所以我會重寫上面的代碼爲:

if (params.answer == null) 
    redirect(action:'xxx') 
    return 
} 

... 
code 
--- 

或者:

if (params.answer == null) 
    redirect(action:'xxx') 

} else { 
    ... 
    code 
    --- 
} 
+0

好。非常感謝你 – VictorArgentin 2011-05-30 14:57:33