我正在将grails 2.4.4 app转换为3.1.8。 在我的一些控制器方法中有时(基于服务调用中发生的事情)我只是在闪存中设置一条消息而没有别的,这在2.4.4中很好,屏幕将使用flash消息重新呈现但在3.1.8中根本没有渲染,屏幕完全空白。 看起来如果我在闪存中设置消息之后添加一个语句,则呈现屏幕,该语句可以是任何例如println'hello'或return或new ModelAndView()。 示例如下:
def index() {
def res = myService.whatever()
if (res) {
[res: res]
}
else {
flash.message = message( code: 'no.res' ) // if we get here nothing is rendered
}
}
这是对grails 3的改变还是我在某处丢失了某些东西?
由于
答案 0 :(得分:0)
尝试这样做
def index() {
def res = myService.whatever()
[res: res]
}
然后在index.gsp视图中
<g:if test="${res}">
<!-- cool thing goes here -->
</g:if>
<g:else>
<g:message code="no.res"/>
</g:else>