flash.message does not print message on the screen in grails 2.x

511 Views Asked by At

My functionality is I have a list of users. When I click on any of the users to edit his information a new window pop up. I change some values and click on save. Now values are saved correctly but 'saved successfully' message is not displayed.

My controller code is

if(user.save(flush:true)){
    user.messages = "${message(code: 'user.saved')}"
    flash.userInstance = user
    render ...
}

and in gsp I print message like this

 <div id="messages">
        <g:if test="${userInstance?.messages}">
            <div class="message">${userInstance?.messages}</div>
        </g:if>
<div>

Here Call does not go inside g:if condition hence message is not printed. This was working well in grails 1.3 but fails in 2.2. Why is that so?

1

There are 1 best solutions below

0
emilan On

This example works for me. Maybe you have some validation errors, try to debug your code.

if(user.save(flush:true)){
        user.messages = "${message(code: 'user.saved')}"
        flash.userInstance = user
        render ...
}

and in gsp

<div id="messages">
   <g:if test="${flash?.userInstance?.messages}">
       <div class="message">${flash?.userInstance?.messages}</div>
   </g:if>
<div>