|
XulServletResourceLoader |
|
/* ** Luxor - XML User Interface Language (XUL) Toolkit ** Copyright (c) 2001, 2002 by Gerald Bauer ** ** This program is free software. ** ** You may redistribute it and/or modify it under the terms of the GNU ** General Public License as published by the Free Software Foundation. ** Version 2 of the license should be included with this distribution in ** the file LICENSE, as well as License.html. If the license is not ** included with this distribution, you may find a copy at the FSF web ** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the ** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA. ** ** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND, ** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR ** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY ** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR ** REDISTRIBUTION OF THIS SOFTWARE. ** */ package luxor.http.loader; import java.net.*; import java.util.*; import luxor.core.*; import luxor.http.resource.*; import luxor.spi.*; import luxor.status.*; import luxor.util.*; import luxor.*; public class XulServletResourceLoader implements WebResourceLoader { static Logger T = Logger.getLogger( XulServletResourceLoader.class ); /** * e.g. /venus */ private String _context; /** * note: don't include leading slash as it is automatically prependend * *@param context Description of the Parameter */ public XulServletResourceLoader( String context ) { _context = context; } public WebResource getResource( String name ) { T.debug( "getResource( " + name + " )" ); String context = "/" + _context + "?"; if( !name.startsWith( context ) ) return null; // split name // - cut of path String query = name.substring( context.length() ); T.debug( "query=" + query ); Map args = UrlUtils.parseQueryString( query ); String actionKey = ( String ) args.get( "action" ); XulManager xul = XulManager.getXulManager(); XulServlet servlet = xul.lookupServlet( actionKey ); if( servlet == null ) { Xul.error( "unknown servlet '" + actionKey + "'" ); return null; } // todo: should I remove action? args.remove( "action" ); String html = servlet.getContent( args ); return new StringResource( name, html ); } }
|
XulServletResourceLoader |
|