2012-09-28 19 views
0

我在控制器的一個方法,該方法將被調用時用戶點擊鏈接如果控制器中發生異常,如何將控制權傳遞給grails錯誤頁面?

<g:link controller="reporting" action="dataCenterNetworkReports"> 
    <g:message code="reports.data.center.network"/> 
    </g:link> 

該方法會得到來自web服務的響應。現在我的問題是,如果WS中有一些事情發生了,並且返回一個錯誤,我需要通過控件並顯示錯誤消息。如何在出現問題時顯示常見的錯誤頁面,並進行攔截。

回答

0

Grails在views/error.gsp中有默認錯誤gsp。如果你看一下代碼,這需要一個例外,所以這樣的事情,我認爲應該是足夠的(未測試):

你的控制器方法

def dataCenterNetworkReports() { 
    String view = "myDefaultView" 
    def model = [:] 
    try { 
    //call webservice 
    }catch(e) { 
    view = '/error' 
    model.exception = e 
    } 
    //when occur some exception view will be /error 
    render(view: view, model: model)  
} 

但是如果你需要表現出一定的自定義佈局,那麼flash object可以是你的選擇。

+0

你的選擇聽起來不錯,但我想要做的是回報錯誤頁面顯示的當前頁面。當前頁面已經顯示了一些完美的東西,而WS調用在後臺運行。我創建了默認的錯誤頁面進行測試,但沒有顯示出來。 – Siva

+0

你能發表更多的代碼嗎?這是一個插件或Grails應用程序?錯誤頁面已經存在於grails應用程序中。 –

相關問題