diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/DisplayMessage.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/DisplayMessage.java index b2fcbd135..e6a5d4c7d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/DisplayMessage.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/DisplayMessage.java @@ -59,14 +59,19 @@ public class DisplayMessage { * If there is no message, return the empty string. */ public static String getMessageAndClear(HttpSession session) { + String message = NO_MESSAGE; if (session != null) { - Object message = session.getAttribute(ATTRIBUTE_NAME); - if (message instanceof String) { - log.debug("Get message: '" + message + "'"); - return (String) message; + Object sessionMessage = session.getAttribute(ATTRIBUTE_NAME); + if (sessionMessage != null) { + if (sessionMessage instanceof String) { + log.debug("Get message: '" + sessionMessage + "'"); + message = (String) sessionMessage; + } + session.removeAttribute(ATTRIBUTE_NAME); + } else { + log.debug("Get no message."); } - } - log.debug("Get no message."); - return NO_MESSAGE; + } + return message; } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java index c18fbb3d1..bef8115ea 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java @@ -21,6 +21,7 @@ import com.hp.hpl.jena.rdf.model.Model; import edu.cornell.mannlib.vedit.beans.LoginStatusBean; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; +import edu.cornell.mannlib.vitro.webapp.beans.DisplayMessage; import edu.cornell.mannlib.vitro.webapp.beans.Portal; import edu.cornell.mannlib.vitro.webapp.config.RevisionInfoBean; import edu.cornell.mannlib.vitro.webapp.controller.ContactMailServlet; @@ -35,7 +36,6 @@ import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Scripts; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Stylesheets; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.TabMenu; import freemarker.ext.beans.BeansWrapper; -import freemarker.ext.servlet.AllHttpScopesHashModel; import freemarker.template.Configuration; import freemarker.template.DefaultObjectWrapper; import freemarker.template.TemplateModel; @@ -397,6 +397,11 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { if ( ! StringUtils.isEmpty(bannerImage)) { map.put("bannerImage", UrlBuilder.getUrl(themeDir + "site_icons/" + bannerImage)); } + + String flashMessage = DisplayMessage.getMessageAndClear(vreq); + if (! flashMessage.isEmpty()) { + map.put("flash", flashMessage); + } return map; } diff --git a/webapp/web/templates/freemarker/page/page.ftl b/webapp/web/templates/freemarker/page/page.ftl index a0baa46b5..3380acfe5 100644 --- a/webapp/web/templates/freemarker/page/page.ftl +++ b/webapp/web/templates/freemarker/page/page.ftl @@ -21,7 +21,13 @@ -
+
+ <#if flash?has_content> +
+ ${flash} +
+ +
${body}