Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.nkapps.billing.configs; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; /** * * @author nuraddin */ public class LayoutInterceptor extends HandlerInterceptorAdapter { public static final String WITHOUT_LAYOUT = "<without_layout>"; private static final String DEFAULT_LAYOUT = "layout/default"; private static final String DEFAULT_VIEW_ATTRIBUTE_NAME = "view"; @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { if (modelAndView == null || !modelAndView.hasView()) { return; } String originalViewName = modelAndView.getViewName(); if (isRedirectOrForward(originalViewName)) { return; } if (originalViewName.endsWith(WITHOUT_LAYOUT)) { modelAndView.setViewName(originalViewName.replace(WITHOUT_LAYOUT, "")); return; } modelAndView.setViewName(DEFAULT_LAYOUT); modelAndView.addObject(DEFAULT_VIEW_ATTRIBUTE_NAME, originalViewName); } private boolean isRedirectOrForward(String viewName) { return viewName.startsWith("redirect:") || viewName.startsWith("forward:"); } }