1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type" /> 3 4 <title>ResourceMap - Simple Mappings from Names to Resources</title><meta name="generator" content="amaya 8.1a, see http://www.w3.org/Amaya/" /> 5 <link href="styles.css" rel="stylesheet" type="text/css" /></head> 6 <body> 7 <h1>ResourceMap - Simple Mappings from Names to Resources</h1> 8 <p>The <code>ResourceMap</code> module provides classes (although 9 currently only one class is supplied) which act as standard WebStack 10 resources, but which examine the path or URL from incoming requests and 11 direct such requests to other resources based on the contents of the 12 path or URL. In other words, such classes map names or patterns to 13 WebStack resources and dispatch requests accordingly.</p><h2>Introducing MapResource</h2><p>The <a href="paths-filesystem.html">"Treating the Path Like a Filesystem"</a> document contains an example involving the <code>MapResource</code> class; this class is initialised with a dictionary mapping names to resources as described below.</p><div class="WebStack"> 14 <h3>WebStack API - The MapResource Class</h3> 15 16 <p>The <code>MapResource</code> 17 class (found in the 18 <code>WebStack.Resources.ResourceMap</code> module) maps names to 19 resource objects, where to select a resource the 20 corresponding name must match the first component discovered 21 in the <a href="path-info.html">virtual "path info"</a>. For example, 22 consider the following virtual "path info" (where there may have been 23 more information in the path, but this has already been processed):</p><pre>/documents/news/2005/article.html</pre><p>Here, the name <code>documents</code> 24 would match the above virtual "path info". Meanwhile, after processing 25 more of the information, we might have the following remains of the 26 path:</p><pre>/2005/article.html</pre><p>Here, the name <code>2005</code> would match, leaving the following information unprocessed:</p><pre>/article.html</pre><p>Here, the name <code>article.html</code> would match. However, let us consider the following original virtual "path info" instead:</p><pre>/documents/news/2005/</pre><p>After processing the leading components, we may instead end up with this:</p><pre>/</pre><p>Here, only an empty string as the name will specifically match the above.</p><h4>Further Reading</h4><p>The <a href="../apidocs/public/WebStack.Resources.ResourceMap.MapResource-class.html">API documentation</a> for the <code>MapResource</code> 27 class provides more detail on the subject of name matching, including 28 the special "catch all" name and a discussion of the pass-through 29 parameter.</p></div></body></html>