2014-01-06 3 views
1

Это сценарий:
У меня есть макет: main.gsp
и есть страница, на которой применяется такая схема: homepage.gsp
У меня есть DIV в main.gsp где Я показываю флэш-сообщение, если оно есть.
Flash-содержимое сообщения потерявшие в макете

Теперь,
, когда контроллер отправляет флеш-сообщение, его доступно на домашней странице.gsp, но когда на нем накладывается макет и отображается страница, сообщение об ошибке теряется.

Я хочу, чтобы флеш-сообщение было доступно в коде макета. Опять же, было бы предпочтительнее, если мне не нужно добавлять код на домашнюю страницу.gsp, так как таких страниц достаточно, где контроллер может возвращать флеш-сообщение.

Как с этим справиться?
Любая помощь очень ценится.

+1

Добавить макет, домашнюю страницу и контроллер код на вопрос. – dmahapatro

+0

на самом деле коды слишком большие, чтобы их можно было размещать здесь. Пожалуйста, дайте мне знать, если есть какие-то конкретные детали, которые я могу вам дать. Я вставлю эту часть кода. –

+0

Вам не нужно публиковать целые файлы, только те части, которые имеют какое-то отношение к вашей проблеме. – lukelazarovic

ответ

0

Это код, который я буду использовать, я проверил и это сработало. main.gsp

<body> 
    <div id="grailsLogo" role="banner"><a href="http://grails.org"><img src="${resource(dir: 'images', file: 'grails_logo.png')}" alt="Grails"/></a></div> 
    <div> 
     <g:if test="${flash.message }"> 
     ${flash.message } 
     </g:if> 
    </div> 
    <g:layoutBody/> 
    <div class="footer" role="contentinfo"></div> 
    <div id="spinner" class="spinner" style="display:none;"><g:message code="spinner.alt" default="Loading&hellip;"/></div> 
    <r:layoutResources /> 
</body> 

Контроллер:

package com.mtsinai 

class EmployeeController { 

    def index() { 
     flash.message = 'Welcome world' 
    } 
} 

index.gsp

<%@ page contentType="text/html;charset=UTF-8" %> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> 
<meta name="layout" content="main"/> 
<title>Insert title here</title> 
</head> 
<body> 
    <div class="body"> 

    </div> 
</body> 
</html> 

Обратите внимание, что сообщение вспышки будет отображаться в верхней части тела или страницы, которые будут be rendered