package org.appfuse.webapp.filter; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import java.io.IOException; /** * Filter to remove messages form the session and put them in the request * - to solve the redirect after post issue. * * <p><a href="MessageFilter.java.html"><i>View Source</i></a></p> * * @author Matt Raible */ public class MessageFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; // grab messages from the session and put them into request // this is so they're not lost in a redirect Object messages = request.getSession().getAttribute("messages"); if (messages != null) { request.setAttribute("messages", messages); request.getSession().removeAttribute("messages"); } // grab errors from the session and put them into request // this is so they're not lost in a redirect Object errors = request.getSession().getAttribute("errors"); if (errors != null) { request.setAttribute("errors", errors); request.getSession().removeAttribute("errors"); } chain.doFilter(req, res); } public void init(FilterConfig filterConfig) { } public void destroy() { } }