1 20 21 package com.methodhead.shim; 22 23 import org.apache.struts.tiles.TilesRequestProcessor; 24 import org.apache.log4j.Logger; 25 import javax.servlet.http.HttpServletRequest ; 26 import javax.servlet.http.HttpServletResponse ; 27 import org.apache.struts.config.ForwardConfig; 28 import com.methodhead.sitecontext.SiteContext; 29 import java.util.regex.Matcher ; 30 import java.util.regex.Pattern ; 31 import java.io.IOException ; 32 import javax.servlet.ServletException ; 33 34 41 public class ShimRequestProcessor 42 extends 43 TilesRequestProcessor { 44 45 47 49 51 53 59 protected void doForward( 60 String uri, 61 HttpServletRequest request, 62 HttpServletResponse response ) 63 throws 64 ServletException , 65 IOException { 66 67 SiteContext context = SiteContext.getContext( request ); 68 69 Matcher matcher = Pattern.compile( ".*\\/(\\w+).shtml$" ).matcher( uri ); 76 77 if ( matcher.matches() ) { 78 79 if ( logger_.isDebugEnabled() ) { 80 logger_.debug( 81 "Matched shim page \"" + matcher.group( 1 ) + "\"" ); 82 } 83 84 if ( ShimGlobals.MODE_EDIT.equals( request.getSession().getAttribute( ShimGlobals.MODE_KEY ) ) ) { 88 super.doForward( "/editPage.do?alias=" + matcher.group( 1 ), request, response ); 89 } 90 91 else { 95 request.setAttribute( ShimGlobals.PAGEALIAS_KEY, matcher.group( 1 ) ); 96 super.doForward( "/viewpage", request, response ); 97 } 98 99 return; 100 } 101 102 super.doForward( uri, request, response ); 106 } 107 108 110 112 private Logger logger_ = Logger.getLogger( ShimRequestProcessor.class ); 113 } 114 | Popular Tags |