1 <?xml version="1.0" encoding="iso-8859-1"?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"><head> 4 <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type" /> 5 <title>ResourceMap - Simple Mappings from Names to Resources</title> 6 <link href="styles.css" rel="stylesheet" type="text/css" /></head> 7 <body> 8 <h1>ResourceMap - Simple Mappings from Names to Resources</h1> 9 <p>The <code>ResourceMap</code> module provides classes (although 10 currently only one class is supplied) which act as standard WebStack 11 resources, but which examine the path or URL from incoming requests and 12 direct such requests to other resources based on the contents of the 13 path or URL. In other words, such classes map names or patterns to 14 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"> 15 <h3>WebStack API - The MapResource Class</h3> 16 17 <p>The <code>MapResource</code> 18 class (found in the 19 <code>WebStack.Resources.ResourceMap</code> module) maps names to 20 resource objects, where to select a resource the 21 corresponding name must match the first component discovered 22 in the <a href="path-info.html">virtual "path info"</a>. For example, 23 consider the following virtual "path info" (where there may have been 24 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> 25 would match the above virtual "path info". Meanwhile, after processing 26 more of the information, we might have the following remains of the 27 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> 28 class provides more detail on the subject of name matching, including 29 the special "catch all" name and a discussion of the pass-through 30 parameter.</p></div></body></html>