package cn.org.rapid_framework.web.scope; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.filter.OncePerRequestFilter; /** * <pre> * 配合Flash需要使用的Filter,并且会在request中设置flash * request.setAttribute("flash",Flash.current().getData()); * </pre> * * @see Flash * @author badqiu */ public class FlashFilter extends OncePerRequestFilter implements Filter{ @Override protected void doFilterInternal(HttpServletRequest request,HttpServletResponse response, FilterChain chain)throws ServletException, IOException { try { Flash.setCurrent(Flash.restore(request)); request.setAttribute("flash",Flash.current().getData()); chain.doFilter(request, response); }finally { Flash flash = Flash.current(); Flash.setCurrent(null); if(flash != null) flash.save(request, response); } } }