You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by jv...@locus.apache.org on 2000/11/03 20:46:11 UTC

cvs commit: jakarta-velocity/docs contributors.html user-guide.html

jvanzyl     00/11/03 11:46:08

  Modified:    docs     contributors.html user-guide.html
  Log:
  - updating docs.
  
  Revision  Changes    Path
  1.12      +12 -0     jakarta-velocity/docs/contributors.html
  
  Index: contributors.html
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity/docs/contributors.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- contributors.html	2000/10/27 02:26:55	1.11
  +++ contributors.html	2000/11/03 19:46:01	1.12
  @@ -146,6 +146,18 @@
         </FONT></TD>
   </TR>
   
  +<TR>
  +    <TD align="left" bgcolor="#a0ddf0" colspan="" rowspan="" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">Leon Messerschmidt&nbsp;
  +      </FONT></TD>
  +    <TD align="left" bgcolor="#a0ddf0" colspan="" rowspan="" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><A href="mailto:leon@opticode.co.za">leon@opticode.co.za</A>&nbsp;
  +      </FONT></TD>
  +    <TD align="left" bgcolor="#a0ddf0" colspan="" rowspan="" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">&nbsp;
  +      </FONT></TD>
  +    <TD align="left" bgcolor="#a0ddf0" colspan="" rowspan="" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">Journeyer&nbsp;
  +      </FONT></TD>
  +</TR>    
  +
  +
   </TABLE>
   
   </P>
  
  
  
  1.9       +351 -181  jakarta-velocity/docs/user-guide.html
  
  Index: user-guide.html
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity/docs/user-guide.html,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- user-guide.html	2000/10/27 02:26:56	1.8
  +++ user-guide.html	2000/11/03 19:46:02	1.9
  @@ -21,7 +21,7 @@
   
   
   
  - <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>About this Guide</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>About this Guide</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
   
    <P align="justify">
       The Velocity User Guide is intended to help page designers and content 
  @@ -32,9 +32,9 @@
       to other pages and templates.
    </P> 
   
  - </FONT></TD></TR></TABLE></DIV><BR>
  +</FONT></TD></TR></TABLE></DIV><BR>
   
  - <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>What is Velocity?</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>What is Velocity?</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
    
    <P align="justify">
       Velocity is a Java-based template engine. It permits web page designers
  @@ -61,11 +61,11 @@
       according to a true MVC model.
    </P>
    
  - </FONT></TD></TR></TABLE></DIV><BR>
  +</FONT></TD></TR></TABLE></DIV><BR>
   
  - <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>What can Velocity do for me?</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>What can Velocity do for me?</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
   
  -   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>The Mud Store Example</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  + <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>The Mud Store Example</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
   
      <P align="justify">
       Suppose you are a page designer for an online store that specializes in selling mud. 
  @@ -134,8 +134,6 @@
       The flexibility of Velocity is enormous and limited only by your creativity.
      </P>
    
  -   </FONT></TD></TR></TABLE></DIV><BR>
  -
      <P align="justify">
       Documented in the VTL Reference are the many other Velocity elements, which 
       collectively give you the power and flexibility you need to make your web site a web
  @@ -144,8 +142,10 @@
      </P>
   
    </FONT></TD></TR></TABLE></DIV><BR>
  +
  +</FONT></TD></TR></TABLE></DIV><BR>
   
  - <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Velocity Template Language (VTL): An Introduction</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Velocity Template Language (VTL): An Introduction</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
   
    <P align="justify">
       The Velocity Template 
  @@ -196,9 +196,9 @@
       data types, as only strings (text-based information) may be passed to variables.
    </P>
   
  - </FONT></TD></TR></TABLE></DIV><BR>
  +</FONT></TD></TR></TABLE></DIV><BR>
   
  - <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Hello Velocity World!</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Hello Velocity World!</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
   
    <P align="justify">
       Once a value has been assigned to a variable, you can reference the 
  @@ -229,16 +229,17 @@
       later on.
    </P>
   
  - </FONT></TD></TR></TABLE></DIV><BR>
  +</FONT></TD></TR></TABLE></DIV><BR>
   
  - <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Comments</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Comments</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
    
    <P align="justify">
  -    Adding comments to your VTL are a useful way of reminding yourself and 
  -    explaining to others what your VTL statements are doing, or any other 
  -    purpose you find useful. Below is an example of a comment in VTL.
  - </P>
  - 
  +    Comments allows descriptive text to be included that is not placed into the
  +    output of the template engine. Comments are a useful way of reminding 
  +    yourself and explaining to others what your VTL statements are doing, or 
  +    any other purpose you find useful. Below is an example of a comment in VTL.
  + </P> 
  +
    <P align="justify">
    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
       ## This is a single line comment.
  @@ -255,15 +256,15 @@
    <P align="justify">
    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
   
  -    This is text that is outside the comment block. Online visitors can see it.
  +    This is text that is outside the multi-line comment. Online visitors can see it.
   
       #*
       Thus begins a multi-line comment. Online visitors won't see this text because 
       the Velocity Templating Engine will ignore it.
       *#
  -    
  -    Here is text outside the comment block; it is visible. 
       
  +    Here is text outside the multi-line comment; it is visible. 
  +
    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
    </P>
   
  @@ -283,9 +284,28 @@
       ## This text is not visible.
    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
    </P>
  +
  + <P align="justify">
  +    There is a third type of comment, the VTL comment block, which ma y be used to
  +    store such information as the document author and versioning information:
  + </P>
  + 
  + <P align="justify">
  + <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +    #** 
  +    This is a VTL comment block and
  +    may be used to store such information 
  +    as the document author and versioning
  +    information:    
  +    @author 
  +    @version 5
  +    *#
  + </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  + </P>
    
   </FONT></TD></TR></TABLE></DIV><BR>
   
  +
   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>References, revisited</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
   
    <P align="justify">
  @@ -393,7 +413,7 @@
       $customer.getAddress()
       $purchase.getTotal()
       $page.setTitle(&quot;My Home Page&quot;)
  -    $person.setAttributes(&quot;Strange&quot;, &quot;Weird&quot;, &quot;Excited&quot;)
  +    $person.setAttributes([&quot;Strange&quot;, &quot;Weird&quot;, &quot;Excited&quot;])
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
    </P>  
   
  @@ -434,114 +454,188 @@
    
    <P align="justify">
       <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  -    $sun.getPlanets(&quot;Earth&quot;, &quot;Mars&quot;, &quot;Neptune&quot;) 
  +    $sun.getPlanet([&quot;Earth&quot;, &quot;Mars&quot;, &quot;Neptune&quot;]) 
       ## Can't pass a parameter list with $sun.Planets
   
  -    $annelid.digestDirt 
  -    ## $annelid.Segments assumes I mean $annelid.getSegements() 
  +    $sisyphus.pushRock()
  +    ## Velocity assumes I mean $sisyphus.getRock() 
       
  -    $book.getChapter(&quot;1&quot;, &quot;4&quot;, &quot;11&quot;)
  -    ## Can't pass a parameter list with $book.Chapter
  +    $book.setTitle(&quot;Homage to Catalonia&quot;)
  +    ## Can't pass a parameter list
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
    </P>
  -
   
  -<P align="justify">
  + <P align="justify">
       <B>Formal Reference Notation</B>
       <BR>
  -    In the examples listed above the shorthand notation for
  -    references was used, but there is a formal notation that
  -    looks like the following:
  -</P>
  +    Shorthand notation for
  +    references was used for the examples listed above, but there is 
  +    also a formal notation for references, which is demonstrated below:
  + </P>
    
  -<P align="justify">
  + <P align="justify">
       <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
       ${mudSlinger}
       ${customer.Address}
       ${purchase.getTotal()}
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  -</P>
  + </P>
    
  -<P align="justify">
  + <P align="justify">
       In almost all cases you will use the shorthand notation
       for references, but in some cases the formal
  -    notation is required for correct processing. Suppose you were
  +    notation is required for correct processing. 
  + </P>
  +    
  + <P align="justify">
  +    Suppose you were
       constructing a sentence on the fly where $vice was to be
  -    used as the base word in the noun of a sentence. Say you
  +    used as the base word in the noun of a sentence. Suppose you
       wanted to allow someone to choose the base word and produce
       one of the two following results: &quot;Jack is a pyromaniac.&quot; or
  -    &quot;Jack is a kleptomaniac.&quot;. You might attempt to use the following in
  -    a VTL template:
  -</P>
  +    &quot;Jack is a kleptomaniac.&quot;. Using shorthand notation would
  +    produce the following:
  + </P>
    
  -<P align="justify">
  + <P align="justify">
       <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
       Jack is a $vicemaniac.
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  -</P>
  + </P>
    
  -<P align="justify">
  -    Velocity can't tell that $vice is the Identifer
  -    that you mean to use; it will assume that $vicemaniac
  -    is the Identifier and try to use that to find an appropriate
  -    value. You can get around this problem by using the formal
  -    notation for this reference:
  -</P>
  + <P align="justify">
  +    There is ambiguity here, and Velocity assumes that $vicemaniac,
  +    not $vice, is the Identifer that you mean to use. Finding no
  +    value for $vicemaniac, it will return $vicemaniac.
  +    Using formal notation can resolve this problem.
  + </P>
    
  -<P align="justify">
  + <P align="justify">
       <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
       Jack is a ${vice}maniac.
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  -</P>
  + </P>
    
  -<P align="justify">
  + <P align="justify">
       Now Velocity knows that $vice, not $vicemaniac, is your
  -    Identifier. The formal notation usually
  -    comes in handy when you have references directly adjacent
  -    to text in your templates.
  -</P>
  +    Identifier. Formal notation is often useful when references
  +    are directly adjacent to text in your templates.
  + </P>
   
   
  -<P align="justify">
  + <P align="justify">
       <B>Quiet Reference Notation</B>
       <BR>
       When Velocity encounters a reference that is undefined,
       its normal behavior is to output the image
  -    of the reference. For example, if you have
  -    the following VTL as part of an HTML page:
  -</P>
  +    of the reference. For example, suppose the following
  +    reference appears as part of a VTL template.
  + </P>
    
  -<P align="justify">
  + <P align="justify">
       <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
       &lt;input type=&quot;text&quot; name=&quot;email&quot; value=&quot;$email&quot;/&gt;
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  -</P>
  + </P>
    
  -<P align="justify">
  -    When the form initially loads the variable
  + <P align="justify">
  +    When the form initially loads, the variable
       reference $email has no value, but you prefer the
       a blank text field to one with a value of &quot;$email&quot;.
  -    Using the quiet reference notation can circumvent Velocity's
  +    Using the quiet reference notation circumvents Velocity's
       normal behavior; instead of using $email in the
       VTL you would use $!email. So the above example
       would look like the following:
  -</P>
  + </P>
    
  -<P align="justify">
  + <P align="justify">
       <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
       &lt;input type=&quot;text&quot; name=&quot;email&quot; value=&quot;$!email&quot;/&gt;
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  -</P>
  + </P>
    
  -<P align="justify">
  + <P align="justify">
       Now when the form is initially loaded and
       $email still has no value, an empty string will
       be output instead of &quot;$email&quot;.
  -</P>
  + </P>
  +
  + <P align="justify">
  +    Formal and quiet reference notation can be used together,
  +    as demonstrated below.
  + </P>
  + 
  + <P align="justify">
  +    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +    &lt;input type=&quot;text&quot; name=&quot;email&quot; value=&quot;$!{email}&quot;/&gt;
  +    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  + </P>
  + 
  +</FONT></TD></TR></TABLE></DIV><BR>
   
  - <B>Summary: References</B>
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Getting literal</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  +
  +  <P align="justify">
  +    VTL uses special characters, such as $ and #, to do its work, so some
  +    added care should be taken where using these characters in your 
  +    templates.
  +  </P>
  + 
  +  <P align="justify">
  +    <B>Currency</B>
  +    <BR>
  +    There is no problem writing &quot;I bought a 4 lb. sack of 
  +    potatoes at the farmer's market for only $2.50!&quot; As mentioned, a VTL
  +    identifier always begins with an upper- or lowercase letter, so
  +    $2.50 would not be mistaken for a reference.
  +  </P>
  +  
  +  <P align="justify">
  +    <B>Escaping special characters</B>
  +    <BR>
  +    Other cases may arise, however, where there is the potential for Velocity
  +    to get confused. <I>Escaping</I> special characters is the best way
  +    to handle VTL's special characters in your templates, and this can be
  +    done using the backslash (&quot;\&quot;) character.
  +  </P>
  +  
  +  <P align="justify">
  +    If Velocity encounters in your VTL template a reference to 
  +    $email, it will search for a corresponding value, but
  +    when the escape character is used, $email is treated
  +    as ordinary text
  +  </P>
  +  
  +  <P align="justify">
  +    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +    \$email
  +    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +  </P>
  + 
  +  <P align="justify">
  +    Velocity treats $ as a literal rather than a special 
  +    character, $email as text rather than a reference, 
  +    and doesn't even attempt to find a corresponding value.
  +  </P>
  + 
  +  <P align="justify">
  +    And what if -- for instance you are writing documentation for
  +    the Windows platform -- and you want to print a backslash character?
  +    Just escape one backslash character with another, as shown:
  +  </P>
  +  
  +  <P align="justify">
  +    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +    c:\\winnt\\system32
  +    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +  </P>
  +</FONT></TD></TR></TABLE></DIV><BR>
  +
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Summary: References</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
       
       <P align="justify">
  +    Now that you are familiar with references, you can begin to
  +    apply them effectively in your templates.
       Velocity references take advantage of some Java principles that 
       template designers will find easy to use. For example:
       </P>
  @@ -549,9 +643,21 @@
       <P align="justify">
       <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
       $foo
  -    $foo.getBar() or $foo.Bar
  -    $data.getUser(&quot;jon&quot;) or $data.User(&quot;jon&quot;)
  -    $data.getRequest().getServerName() or $data.Request.ServerName
  +    
  +    $foo.getBar() 
  +    ## is the same as 
  +    $foo.Bar
  +    
  +    $data.getUser(&quot;jon&quot;)
  +    ## is the same as 
  +    $data.User(&quot;jon&quot;)
  +    
  +    
  +    $data.getRequest().getServerName()
  +    ## is the same as 
  +    $data.Request.ServerName
  +    ## is the same as 
  +    ${data.Request.ServerName}
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
       </P>
   
  @@ -563,73 +669,201 @@
       references almost anywhere in your template.
       </P>
       
  - </FONT></TD></TR></TABLE></DIV><BR>
  +</FONT></TD></TR></TABLE></DIV><BR>
  +
   
   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Directives</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">  
  + 
  + <P align="justify">
  +    References allow template designers to generate dynamic content for
  +    web sites, while <I>directives</I> -- easy to use 
  +    script elements that can be used to creatively manipulate the output of 
  +    Java code -- permit web designers to truly take charge 
  +    of the appearance and content of the web site.
  + </P>
   
  + <P align="justify">
  +    <B>#set</B>
  +    <BR>
  +    The #set directive is used for setting the value of
  +    a reference. A value can be assigned to either a variable
  +    reference or a property reference:
  + </P>
  + 
  + <P align="justify">
  +    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +    #set $primate = &quot;monkey&quot;
  +    #set $customer.Behavior = $primate
  +    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  + </P>
  + 
  + <P align="justify">
  +    The left hand side (LHS) of the assigment must be
  +    a variable reference or a property reference. The
  +    right hand side (RHS) can be one of the following
  +    types:
  + </P>
  + 
  + <P align="justify">
  +    <BLOCKQUOTE><UL>
  +        <LI>Variable reference</LI>
  +        <LI>String literal</LI>
  +        <LI>Property reference</LI>
  +        <LI>Method reference</LI>
  +        <LI>Number literal</LI>
  +        <LI>Object array</LI>
  +    </UL></BLOCKQUOTE>
  + </P>
  + 
  + <P align="justify">
  +    These examples demonstrate each of the aforementioned 
  +    types:
  + </P>
  + 
  + <P align="justify">
  +    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +    #set $monkey = $bill ##variable reference
  +    #set $monkey.Friend = &quot;monica&quot; ##string literal
  +    #set $monkey.Blame = $whitehouse.Leak ##property reference
  +    #set $monkey.Plan = $spindoctor.weave($web) ##method reference
  +    #set $monkey.Number = 123 ##number literal
  +    #set $monkey.Say = [&quot;Not&quot;, $my, &quot;fault&quot;] ##object array
  +    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  + </P>
  + 
  + <P align="justify">
  +    The RHS can also be a simple arithmetic expression:
  + </P>
  + 
  + <P align="justify">
  +    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +    #set $value = $foo + 1
  +    #set $value = $bar - 1
  +    #set $value = $foo * $bar
  +    #set $value = $foo / $bar
  +    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  + </P>
  +
   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Conditionals</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
   
  -    <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>If / ElseIf / Else Conditionals</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <B>If / ElseIf / Else</B>
       <P align="justify">
  -    The #if statement in Velocity allows for text in the brackets to be 
  -    included in the text, on the conditional that the if statement
  -    is true. For example:
  +       The #if statement in Velocity allows for text to be 
  +       included when the web page is generated, on the conditional 
  +       that the if statement is true. For example:
       </P>
   
       <P align="justify">
  -    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  -    #if ($foo)
  -        &lt;strong&gt;Velocity Rocks!&lt;/strong&gt;
  -    #end
  -    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +      <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +      #if ($foo)
  +         &lt;strong&gt;Velocity!&lt;/strong&gt;
  +      #end
  +      </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
       </P>
   
       <P align="justify">
  -    The variable $foo is evaluated to see if it is a boolean or not null; the 
  -    content within the brackets becomes the output if the evaluation is true. 
  -    Unlike in JSP, Velocity does not force web developers to wrap HTML code 
  -    within an out.println(), or to delve into ugly workarounds to out.println().
  +      The variable $foo is evaluated to see if it is true, which will happen 
  +      under one of two circumstances: (i) $foo is a boolean (true/false) which 
  +      has a true value, or (ii) the value is not null. The content between the 
  +      #if and the #end statements become the output if 
  +      the evaluation is true. In this case, if $foo is true, the
  +      output will be: &quot;Velocity!&quot;. Conversely, if $foo has a null 
  +      value, or if it is a boolean false, the statement evaluates as false, and
  +      there is no output.
       </P>
       
       <P align="justify">
  -    An #elseif or #else element can be used with an #if element.
  +      An #elseif or #else element can be used with an #if element. Note that 
  +      the Velocity Templating Engine will stop at the first expression that is
  +      found to be true. In the following example, suppose that $foo has a 
  +      value of 15 and $bar has a value of 6.
       </P>
   
       <P align="justify">
       <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  -    #if ($foo)
  -        &lt;strong&gt;Velocity Rocks!&lt;/strong&gt;
  -    #elseif($bar)
  -        &lt;strong&gt;Velocity Rocks Again!&lt;/strong&gt;
  +    #if ($foo &lt; 10)
  +        &lt;strong&gt;Go North&lt;/strong&gt;
  +    #elseif ($foo &gt; 10)
  +        &lt;strong&gt;Go East&lt;/strong&gt;
  +    #elseif ($bar = 6)
  +        &lt;strong&gt;Go South&lt;/strong&gt;
       #else
  -        &lt;strong&gt;Velocity Still Rocks!&lt;/strong&gt;
  +        &lt;strong&gt;Go West&lt;/strong&gt;
       #end
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
       </P>
       
       <P align="justify">
  -    In this example, if $foo is false, then the output will be
  -    <B>Velocity Still Rocks!</B> 
  +    In this example, $foo is greater than or equal to 10, so the Velocity
  +    Templating Engine makes the output of the if-ifelse-ifelse-else-end
  +    statement <B>Go East</B>. If $foo had a value of 10 and $bar
  +    had a value of 6.1, then $foo is neither greater than 10 nor equal to 
  +    10, and $bar is not equal to 6. All if and elseif statements are false,
  +    so the output is <B>Go West</B>. 
       </P>
   
  +    <P align="justify">
  +    <B>Logical Operators</B>
  +    </P>
  +    
       <P align="justify">
  -    Note that logical operators are not yet available in Velocity. 
  -    This functionality is expected to be added soon. An example of
  -    a logical operator is shown below.
  +      Logical operators are not yet available in Velocity, but 
  +      this functionality is expected to be added soon. There will be
  +      two kinds of logical operators: logical AND and 
  +      logical OR. Below is an example of an if statement using 
  +      logical AND.
       </P>
   
       <P align="justify">
  -    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  -    #if ($foo &amp;&amp; $bar)
  -        &lt;strong&gt;Velocity Rocks!&lt;/strong&gt;
  -    #end
  -    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +      <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +      #if ($foo &amp;&amp; $bar)
  +         &lt;strong&gt;Velocity Rocks!&lt;/strong&gt;
  +      #end
  +      </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
       </P>
  -    </FONT></TD></TR></TABLE></DIV><BR>
  -</FONT></TD></TR></TABLE></DIV><BR>
  +    
  +    <P align="justify">
  +      The if statement will only evaluate to true if both $foo and 
  +      $bar are true. If $foo is false, the expression will evaluate
  +      to false; $bar will not be evaluated. If $foo is true, the
  +      Velocity Templating Engine will then check the value of $bar;
  +      if $bar is true, then the entire expression is
  +      true and <B>Velocity Rocks!</B> becomes the output.
  +      If $bar is false, then there will be no output; the entire
  +      expression is false.
  +    </P>
  +    
  +    <P align="justify">
  +      Logical OR operators work the same way, except only one of
  +      the references need evaluate to true in order for the entire
  +      expression to be considered true. Consider the following
  +      example.
  +    </P>
  +    
  +    <P align="justify">
  +      <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  +      #if ($foo || $bar)
  +         &lt;strong&gt;Velocity Rocks Again!&lt;/strong&gt;
  +      #end
  +      </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +    </P>
  +      
  +    <P align="justify">
  +      If $foo is true, the Velocity Templating Engine has no 
  +      need to look at $bar; whether $bar is true or false, the
  +      expression will be true, and <B>Velocity Rocks 
  +      Again!</B> will be output. If $foo is false, however,
  +      $bar must be checked. In this case, if $bar is also false, 
  +      the expression evaluates to false and there is no output.
  +      On the other hand, if $bar is true, then the entire 
  +      expression is true, and the output is <B>Velocity Rocks 
  +      Again!</B>
  +    </P>
  +    
  + </FONT></TD></TR></TABLE></DIV><BR>
   
  -<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Loops</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  -    <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Foreach Loop</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  + <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Loops</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <B>Foreach Loop</B>
       <P align="justify">
       The #foreach element allows for looping. For example:
       </P>
  @@ -658,10 +892,10 @@
       $product was really a Product class in Java, its name could be retrieved
       by referencing the $product.Name method (ie: Product.getName()).
       </P>
  -    </FONT></TD></TR></TABLE></DIV><BR>
  -</FONT></TD></TR></TABLE></DIV><BR>    
  +
  + </FONT></TD></TR></TABLE></DIV><BR>    
   
  -<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Include</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  + <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Include</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
       <P align="justify">
       The #include script element allows the template designer to import a 
       local file, which is then inserted into the location where the #include 
  @@ -673,76 +907,12 @@
       <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
       #include /path/to/file.vm
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  -    </P>
  -</FONT></TD></TR></TABLE></DIV><BR>
  -
  -<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Set</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  -    <P align="justify">
  -    The #set script element allows the template designer to set variables 
  -    within the Context.
  -    </P>
  -    
  -    <P align="justify">
  -    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  -    #set $name = &quot;Fred&quot;
  -    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  -    </P>
  -    
  -    <P align="justify">
  -    When using the #set directive, the variable on the left side must be 
  -    prefixed with a $. This provides a 
  -    consistent syntax for referencing variables in Velocity.
  -    </P>
  -    
  -    <P align="justify">
  -    The following script elements have not been implemented.
  -    </P>
  -</FONT></TD></TR></TABLE></DIV><BR>
  -
  -<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Comments</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  -    <P align="justify">
  -    There are three comment types that allow the template designer to 
  -    place descriptive text in templates that is not placed into the
  -    output of the template engine.
  -    </P>
  -    
  -    <P align="justify">
  -    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  -    ## this is a line comment
  -    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
       </P>
  + </FONT></TD></TR></TABLE></DIV><BR>
   
  -    <P align="justify">
  -    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  -    #*
  -    
  -    This is a multiline
  -    block comment used for
  -    longer descriptions.
  -    
  -    *#
  -    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  -    </P>
  -
  -    <P align="justify">
  -    <DIV align="left"><TABLE border="0" cellpadding="0" cellspacing="0"><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><TABLE><TR><TD align="left"><PRE>
  -    #** 
  -    
  -    This is a VTL comment block and
  -    may be used to store such information 
  -    as the document author and versioning
  -    information:
  -    
  -    @author 
  -    @version 5
  -    
  -    *#
  -    </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  -    </P>
   
  -</FONT></TD></TR></TABLE></DIV><BR>
   
  -<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Stop</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  + <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Stop</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
       <P align="justify">
       The #stop script element allows the template designer to stop the execution
       of the template engine and return. This is useful for debugging purposes.
  @@ -753,9 +923,9 @@
       #stop
       </PRE></TD></TR></TABLE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" colspan="3" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
       </P>    
  -</FONT></TD></TR></TABLE></DIV><BR>
  + </FONT></TD></TR></TABLE></DIV><BR>
   
  -<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Macro</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
  + <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>Macro</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif">
       <P align="justify">
       With the #macro script element, the template designer can define a 
       time-saving macro. 
  @@ -791,7 +961,7 @@
       $element and put it into its table data cell.
       </P>
       
  -</FONT></TD></TR></TABLE></DIV><BR>
  + </FONT></TD></TR></TABLE></DIV><BR>
   
   </FONT></TD></TR></TABLE></DIV><BR>