如果在控制器中发生异常,如何将控制传递给grails错误页面?

时间:2012-09-28 12:35:15

标签: grails groovy

我在控制器中有一个方法,当用户点击链接时会调用该方法

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

该方法将从Web服务获得响应。现在我的问题是,如果某些事情在WS中出现问题并返回错误,我需要传递控件并显示错误消息。当出现问题时如何显示常见的错误页面并进行阻止。

1 个答案:

答案 0 :(得分: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可以是您的选择。