svn commit: r730941 - in /jakarta/taglibs/proper/string/trunk: pom.xml src/main/ src/main/resources/ src/main/resources/META-INF/ src/main/resources/META-INF/taglibs-string.tld

[email protected]
Newsgroups gmane.comp.jakarta.taglibs.devel
Message-ID <[email protected]>
Author: bayard
Date: Sat Jan  3 01:25:41 2009
New Revision: 730941

URL: http://svn.apache.org/viewvc?rev=730941&view=rev
Log:
Hooking the tld file in, with suitable changes to the example to get rid of the non standard usage + comment tags (and <code>). Adding the maven taglib plugin to create reports. 

Added:
    jakarta/taglibs/proper/string/trunk/src/main/
    jakarta/taglibs/proper/string/trunk/src/main/resources/
    jakarta/taglibs/proper/string/trunk/src/main/resources/META-INF/
    jakarta/taglibs/proper/string/trunk/src/main/resources/META-INF/taglibs-string.tld   (with props)
Modified:
    jakarta/taglibs/proper/string/trunk/pom.xml

Modified: jakarta/taglibs/proper/string/trunk/pom.xml
URL: http://svn.apache.org/viewvc/jakarta/taglibs/proper/string/trunk/pom.xml?rev=730941&r1=730940&r2=730941&view=diff
==============================================================================
--- jakarta/taglibs/proper/string/trunk/pom.xml (original)
+++ jakarta/taglibs/proper/string/trunk/pom.xml Sat Jan  3 01:25:41 2009
@@ -16,7 +16,6 @@
    limitations under the License.
 -->
 <!-- TODO:
-    Generate the tld file (put in jar)
     Generate the doc war
     Generate the examples war
 -->
@@ -78,6 +77,11 @@
           <include>../LICENSE</include>
         </includes>
       </resource>
+      <resource>
+        <directory>src/main/resources/META-INF</directory>
+        <targetPath>META-INF</targetPath>
+      </resource>
+
     </resources>
     <plugins>
       <plugin>
@@ -93,4 +97,13 @@
     </plugins>
   </build>
 
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>net.sourceforge.maven-taglib</groupId>
+        <artifactId>maven-taglib-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
+
 </project>

Added: jakarta/taglibs/proper/string/trunk/src/main/resources/META-INF/taglibs-string.tld
URL: http://svn.apache.org/viewvc/jakarta/taglibs/proper/string/trunk/src/main/resources/META-INF/taglibs-string.tld?rev=730941&view=auto
==============================================================================
--- jakarta/taglibs/proper/string/trunk/src/main/resources/META-INF/taglibs-string.tld (added)
+++ jakarta/taglibs/proper/string/trunk/src/main/resources/META-INF/taglibs-string.tld Sat Jan  3 01:25:41 2009
@@ -0,0 +1,1866 @@
+<?xml version="1.0" ?>
+<!--
+  Copyright 1999-2004 The Apache Software Foundation
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<taglib>
+  <tlib-version>1.1.0</tlib-version>
+  <jsp-version>1.1</jsp-version>
+  <short-name>string</short-name>
+  <uri>http://jakarta.apache.org/taglibs/string-1.1</uri>
+  <display-name>String Tag library</display-name>
+
+  <description>
+    The String taglibrary provides a host of tags for manipulating 
+    java.lang.Strings. The style is that the String to act upon is the 
+    body of the tag, and attributes are used as parameters for the 
+    manipulation.
+  </description> 
+
+      <!-- Tags with no attributes -->
+      <tag>
+        <name>length</name>
+        <tag-class>org.apache.taglibs.string.LengthTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>length</display-name>
+        <description>
+          Return the length of a String. An empty string is returned for 
+          a null String if one should somehow be passed in.
+        </description>
+        <availability>1.2</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.2</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>capitalize</name>
+        <tag-class>org.apache.taglibs.string.CapitalizeTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>capitalize</display-name>
+        <description>
+            Capitalize a String. The first character is converted 
+            to TitleCase.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>uncapitalize</name>
+        <tag-class>org.apache.taglibs.string.UncapitalizeTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>uncapitalize</display-name>
+        <description>
+            Change the first letter of a String to Lowercase.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+             Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>upperCase</name>
+        <tag-class>org.apache.taglibs.string.UpperCaseTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>upperCase</display-name>
+        <description>
+            Turn the entire String to uppercase. Delegates to
+            java.lang.String, so no idea if it uses Titlecase
+            when it's supposed to.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>lowerCase</name>
+        <tag-class>org.apache.taglibs.string.LowerCaseTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>lowerCase</display-name>
+        <description>
+            Turn all uppercase and titlecase characters to lowercase.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>trim</name>
+        <tag-class>org.apache.taglibs.string.TrimTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>trim</display-name>
+        <description>
+            Remove whitespace from start and end of a String.  
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>chop</name>
+        <tag-class>org.apache.taglibs.string.ChopTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>chop</display-name>
+        <description>
+            Remove the last character from a String.
+            If it is a \n and a \r precedes it, then remove that too.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>chopNewline</name>
+        <tag-class>org.apache.taglibs.string.ChopNewlineTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>chopNewline</display-name>
+        <description>
+            Remove a \n from the end of a String if it is there.
+            If a \r precedes it, then it removes that too.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>escape</name>
+        <tag-class>org.apache.taglibs.string.EscapeTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>escape</display-name>
+        <description>
+            Escape a String into a Java-compatible String.
+            Handles unicode, and the standard escapes:
+            \t, \b, \n, \f, \r, \\, \", \' 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>reverse</name>
+        <tag-class>org.apache.taglibs.string.ReverseTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>reverse</display-name>
+        <description>
+            Reverse a String.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>swapCase</name>
+        <tag-class>org.apache.taglibs.string.SwapCaseTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>swapCase</display-name>
+        <description>
+            Swap the casing in a String. Lowercase goes to
+            Uppercase or Titlecase depending on whether they
+            are the first in the String or after whitespace.
+            Uppercase and Titlecase go to Lowercase
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>soundex</name>
+        <tag-class>org.apache.taglibs.string.SoundexTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>soundex</display-name>
+        <description>
+            Return the US_ENGLISH Soundex of a String.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>metaphone</name>
+        <tag-class>org.apache.taglibs.string.MetaphoneTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>metaphone</display-name>
+        <description>
+            Get the metaphone for a String. This is an improved
+            variant of SoundEx. 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>quoteRegexp</name>
+        <tag-class>org.apache.taglibs.string.QuoteRegexpTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>quoteRegexp</display-name>
+        <description>
+            Quote a String so that it will pass through a regular
+            expression as a constant. 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+      </tag>
+      <tag>
+        <name>capitalizeAllWords</name>
+        <tag-class>org.apache.taglibs.string.CapitalizeAllWordsTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>capitalizeAllWords</display-name>
+        <description>
+           Capitalize all the words found in a piece of body text. 
+           Capitalization is performed upon any letters following whitespace, 
+           and on the first character.
+        </description>
+  
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+  
+        <example>
+Will output: "Some Form Of Lower Case Sentence"
+<![CDATA[ 
+<str:capitalizeAllWords>some form of lower case sentence</str:capitalizeAllWords>
+]]>       
+       </example>
+      </tag>
+      <tag>
+        <name>removeXml</name>
+        <tag-class>org.apache.taglibs.string.RemoveXmlTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>removeXml</display-name>
+        <description>
+            Remove any XML tags from a String. A very
+            simple algorithm which just removes any &lt;..&gt;
+            blocks of text.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+All it currently does is strip any &lt;xx&gt; tags out. It doesn't check that 
+the tags are correct xml and it would be confused by &lt; or &gt; signs 
+inside a tag attribute.
+<![CDATA[ 
+<str:removeXml><name>John Brown</name></str:removeXml>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>encodeUrl</name>
+        <tag-class>org.apache.taglibs.string.EncodeUrlTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>encodeUrl</display-name>
+        <description>
+            Encode a String to that it may be used as a URL. <b>Note:</b> accented characters may not be encoded correctly, but there is not we can do about it (a solution would be passing the encoding as an attribute, but that would require a J2SE 1.4 environment).
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Especially useful if database output is being put into an &lt;a href=".."&gt;
+<![CDATA[ 
+<str:encodeUrl>http://www.apache.org/some file//page.html</str:encodeUrl>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>decodeUrl</name>
+        <tag-class>org.apache.taglibs.string.DecodeUrlTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>decodeUrl</display-name>
+        <description>
+            Decode a URL so it may be nicely printed. <b>Note:</b> accented characters may not be encoded correctly, but there is not we can do about it (a solution would be passing the encoding as an attribute, but that would require a J2SE 1.4 environment).
+
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Useful in parallel with its counterpart. If a database contains the URL in 
+encoded form, then this could be used to show a human readable version.
+<![CDATA[ 
+<str:decodeUrl>http://www.apache.org/some+file%20/page.html</str:decodeUrl>
+]]>       
+        </example>
+      </tag>
+
+      <!-- 'set' attribute tags -->
+      <tag>
+        <name>count</name>
+        <tag-class>org.apache.taglibs.string.CountTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>count</display-name>
+        <description>
+            Count the number of occurences of a passed in 'Set'.
+            A Set is a String of a particular format. It may include ranges
+            and single characters. A Set may be negated.
+
+            <ul>
+             <li>range  - "a-z"</li>
+             <li>char   - "a"</li>
+             <li>negate - "^a"</li>
+            </ul> 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>set</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character Set to look for.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+There is 1 a, 2 e's and no f's. So the result is 3.
+<![CDATA[ 
+<str:count set="aef">Some sample text to count</count>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>delete</name>
+        <tag-class>org.apache.taglibs.string.DeleteTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>delete</display-name>
+        <description>
+            Delete any characters from the body that match
+            characters specified in the Set.
+            The syntax of a Set is described in Count.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>set</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character Set to look for.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Will output: &apos;Som smpl txt to dlt rom&apos;
+<![CDATA[ 
+<str:delete set="aef">Some sample text to delete from</str:delete>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>squeeze</name>
+        <tag-class>org.apache.taglibs.string.SqueezeTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>squeeze</display-name>
+        <description>
+            Squeeze any characters from the body that match
+            characters specified in the Set. Squeezing means that
+            if it finds two adjoining characters that are the same, 
+            they are replaced with a single one of the characters.
+            The syntax of a Set is described in the Count tag.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>set</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character Set to look for.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Will output: &apos;Some sample text to squeeze&apos;
+<![CDATA[ 
+<str:squeeze set="xo">Some sample texxxt toooo squeeze</str:squeeze>
+]]>       
+        </example>
+      </tag>
+
+      <!-- Delimiter and width attribute tags -->
+      <tag>
+        <name>center</name>
+        <tag-class>org.apache.taglibs.string.CenterTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>center</display-name>
+        <description>
+            Center the body String in a larger String of size width.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+            String to pad the larger String with.
+            Default is a space character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>width</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+            Size of larger String.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Outputs a header with &apos;The Title&apos; embedded in a bunch of - characters.
+<![CDATA[ 
+<str:center width="40" delimiter="-">The Title</str:center>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>rightPad</name>
+        <tag-class>org.apache.taglibs.string.RightPadTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>rightPad</display-name>
+        <description>
+            Right pad a string with a particular delimiter to a
+            specified width. The width includes the size of
+            the string.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              String to pad the larger String with.
+              Default is a space character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>width</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Size of larger String.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Will output:  &apos;An arrow-------&gt;&apos;
+<![CDATA[ 
+<str:rightPad width="15" delimiter="-">An arrow</str:rightPad>&gt;
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>leftPad</name>
+        <tag-class>org.apache.taglibs.string.LeftPadTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>leftPad</display-name>
+        <description>
+            Left pad a string with a particular delimiter to a 
+            specified width. The width includes the size of
+            the string. 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              String to pad the larger String with.
+              Default is a space character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>width</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Size of larger String.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Will output:  &apos;&lt;-------An arrow&gt;&apos;
+<![CDATA[ 
+&lt;<str:leftPad width="15" delimiter="-">An arrow</str:rightPad>
+]]>       
+        </example>
+      </tag>
+
+      <!-- Delimiter attribute tags -->
+      <tag>
+        <name>chomp</name>
+        <tag-class>org.apache.taglibs.string.ChompTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>chomp</display-name>
+        <description>
+            Remove the last occurence of a specified character,
+            and everything after it.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character to remove after. 
+              Default is a newline character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+One use could be to remove # and // comments from code when outputted.
+<![CDATA[ 
+<str:chomp delimiter="#">Some code; # A comment</str:chomp>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>getChomp</name>
+        <tag-class>org.apache.taglibs.string.GetChompTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>getChomp</display-name>
+        <description>
+            Get everything after a specified delimiter.
+            Returns the delimiter as well.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character to get text after.
+              Default is a newline character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Similarily to its counterpart, this could be used to get the comments from a 
+piece of code.
+<![CDATA[ 
+<str:getChomp delimiter="#">Some code; # A comment</str:getChomp>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>prechomp</name>
+        <tag-class>org.apache.taglibs.string.PrechompTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>prechomp</display-name>
+        <description>
+            Remove everything up until a specified delimiter, and
+            that specified delimiter from the start of a String.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character to remove before.
+              Default is a newline character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Again, this could be used to get the comment from a piece of code. However it 
+would not include the delimiter as getChomp would.
+<![CDATA[ 
+<str:prechomp delimiter="#">Some code; # A comment</str:prechomp>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>getPrechomp</name>
+        <tag-class>org.apache.taglibs.string.GetPrechompTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>getPrechomp</display-name>
+        <description>
+            Get everything up until a specific delimiter.
+            Returns the delimiter as well.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character to get text before.
+              Default is a newline character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+In the code comment theme, this would return the code but include the comment 
+character itself.
+<![CDATA[ 
+<str:getPrechomp delimiter="#">Some code; # A comment</str:getPrechomp>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>strip</name>
+        <tag-class>org.apache.taglibs.string.StripTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>strip</display-name>
+        <description>
+            Strip all of a specified character which appear
+            at the start and end of a String.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character to remove from start and end of body.
+              Default is a isWhitespace() character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Default is isWhitespace, that is tab or newline or space character.
+<![CDATA[ 
+<str:strip delimiter="-">---A Title---</str:strip>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>stripEnd</name>
+        <tag-class>org.apache.taglibs.string.StripEndTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>stripEnd</display-name>
+        <description>
+            Strip all of a specified character which appear
+            at the end of a String.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character to remove from end of body.
+              Default is a isWhitespace() character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+<![CDATA[ 
+<str:stripEnd delimiter="-">A Title---</str:stripEnd>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>stripStart</name>
+        <tag-class>org.apache.taglibs.string.StripStartTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>stripStart</display-name>
+        <description>
+            Strip all of a specified character which appear
+            at the start of a String. 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character to remove from start of body.
+              Default is a isWhitespace() character. 
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+<![CDATA[ 
+<str:stripStart delimiter="-">---A Title</str:stripStart>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>reverseDelimitedString</name>
+        <tag-class>org.apache.taglibs.string.ReverseDelimitedStringTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>reverseDelimitedString</display-name>
+        <description>
+            Reverses a delimited String. One example would be changing
+            org.apache.taglib to taglib.apache.org. The delimiter to use
+            is settable.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>char</type>
+          <description>
+              Character to use as the delimiter in the qualified name.
+              Default is a dot character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Major use is to turn domain names into java package names. Bound to be other uses.
+<![CDATA[ 
+<str:reverseDelimitedString delimiter=".">org.apache.taglib.string.String</str:reverseDelimitedString>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>overlay</name>
+        <tag-class>org.apache.taglibs.string.OverlayTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>overlay</display-name>
+        <description>
+            Overlay a String on top of another String. The length
+            of the String to overlay does not have to be the same as
+            the size of substring it replaces. 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>with</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              String to overlay onto the body. 
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>start</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Start index. 
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>end</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Index to end before.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+&apos;pond&apos; will be replaced by &apos;tree&apos;
+<![CDATA[ 
+<str:overlay with="tree" start="4" end="8">The pond was wet.</str:overlay>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>substring</name>
+        <tag-class>org.apache.taglibs.string.SubstringTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>substring</display-name>
+        <description>
+            Get a specified substring from a larger String based
+            on the start index and end-before index in the larger
+            String
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>start</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Start index. May be negative, which means it is the index 
+              counting backwards from the end of the string.
+              Default is 0.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>end</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Index to end before. May be negative, which means it is the 
+              index counting backwards from the end of the string. May also 
+              be longer than the length of the string, in which case it 
+              quietly sets it to the length of the string.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Will get the substring &apos;tree&apos; from the body.
+<![CDATA[ 
+<str:substring start="4" end="8">The tree is green.</str:substring>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>repeat</name>
+        <tag-class>org.apache.taglibs.string.RepeatTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>repeat</display-name>
+        <description>
+            Repeat a string a particular number of times. 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>count</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Number of times to repeat the body.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Will output &apos;xxxxx&apos;
+<![CDATA[ 
+<str:repeat count="5">x</str:repeat>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>wordWrap</name>
+        <tag-class>org.apache.taglibs.string.WordWrapTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>wordWrap</display-name>
+        <description>
+            Word-wrap a String. This involves formatting a long
+            String to fit within a certain character width of page.
+            A delimiter may be passed in to put at the end of each
+            line and a splitting character can be specified for when
+            a word has to be cut in half.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>width</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Width to word wrap to.
+              Default is 80.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiter</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character to put between each line.
+              Default is a newline character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>split</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Character to use when a word has to be split.
+              Default is a - character.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>delimiterInside</name>
+          <required>false</required>
+          <rtexprvalue>false</rtexprvalue>
+          <type>boolean</type>
+          <description>
+              Flag indicating if the delimiter should be included in chunk before length reaches width.
+              Default is true.
+          </description>
+          <availability>1.1</availability>
+        </attribute>
+        <example>
+<![CDATA[ 
+<str:wordWrap width ="50" delimiter="&lt;br&gt;">Word-wrap a String. This involves formatting a long String to fit within a certain character width of page. A delimiter may be passed in to put at the end of each line and a splitting character can be specified for when a word has to be cut in half.</str:wordWrap>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>nestedString</name>
+        <tag-class>org.apache.taglibs.string.NestedStringTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>nestedString</display-name>
+        <description>
+            Get a String that is nested between an open and closing substring.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>open</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Index to start substring at.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>close</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Index to stop substring before.
+              Default is the end of the string.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Pluck's &apos;Bob&apos; from out of the square brackets.
+<![CDATA[ 
+<str:nestedString open="[" close="]">[Bob]</str:nestedString>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>countMatches</name>
+        <tag-class>org.apache.taglibs.string.CountMatchesTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>countMatches</display-name>
+        <description>
+            Return the number of times that the body String
+            contains the sub-string.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>substring</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Substring to count number of.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+The substring &apos;world&apos; is repeated four times in the body.
+<![CDATA[ 
+<str:countMatches substring="world">Hello world programs are rife in this world due to their worldy view of how to program a world of code</str:countMatches>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>default</name>
+        <tag-class>org.apache.taglibs.string.DefaultTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>default</display-name>
+        <description>
+            If the body String is a particular value, then output
+            a default value, else output the body String.
+            The major use of this is to convert 'null' into an
+            empty String.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>value</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Value to be equal to.
+              Default is the string: "null".
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>default</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Value to place if body is equal to value field.
+              Default is an empty String.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+If the inner tag (db:get) return null (or the string "null") then an empty 
+string will be printed out.
+<![CDATA[ 
+<str:default><db:get value="Name"></str:default>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>replace</name>
+        <tag-class>org.apache.taglibs.string.ReplaceTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>replace</display-name>
+        <description>
+            Replace a specified substring with another string.
+            A number of times may be specified to say how many times
+            to replace the substring.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>replace</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Value to find to replace.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>with</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Value to replace with.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>count</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Number of times to replace.
+              Default is all matches.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>newlineToken</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Token to use instead of a newline to get around JSP pain.
+              Default is to ignore this functionality.
+          </description>
+          <availability>1.0.1</availability>
+        </attribute>
+        <attribute>
+          <name>carriageToken</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Token to use instead of a carriage return to get around JSP pain.
+              Default is to ignore this functionality.
+          </description>
+          <availability>1.0.1</availability>
+        </attribute>
+        <example>
+One use of the replace tag is to change newlines to html br's. Note that real 
+newlines need to be entered into the JSP.
+<![CDATA[ 
+<str:replace replace="
+" with="&lt;br&gt;
+">A sentence.
+Another sentence.
+Some more to test. And insert Br's into.
+Hopefully.</str:replace>
+]]>       
+_or_ with 1.0.1:
+<![CDATA[ 
+<str:replace replace="NL" with="&lt;br&gt;NL" newlineToken="NL">
+A sentence.
+Another sentence.
+Some more to test. And insert Br's into.
+Hopefully.</str:replace>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>randomString</name>
+        <tag-class>org.apache.taglibs.string.RandomStringTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>randomString</display-name>
+        <description>
+            Create a random string. It can create an ascii string,
+            a numeric string, an alphanumeric string, and a unicode
+            string. The size of the string may be specified, as can a  
+            start and end character. Lastly, a set of characters to use
+            may be passed in. 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>count</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Number of characters to generate.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>start</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Start of range of characters to generate from.
+              Linked to type attribute.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>end</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              End of range of characters to generate from.
+              Linked to type attribute.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>type</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Type of random-string. 
+              One of: numeric | alphanumeric | alphabet | unicode.
+              Default value is to unicode.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+The random tag has a lot of options. The easiest way is to just use the type 
+field, as in the example. The second example shows how the developer can 
+specify the characters to use, for example, random vowels. The last example 
+is merely demonstrative, no one would want to do this, but it shows how the 
+developer may specify the range of characters, in this example, all the 
+control characters.
+<![CDATA[ 
+<str:random count="10" type="alphanumeric"/>
+<str:random count="1">aeiou</str:random>
+<str:random count="5" start="1" end="32"/>
+]]>       
+        </example>
+      </tag>
+
+      <tag>
+        <name>left</name>
+        <tag-class>org.apache.taglibs.string.LeftTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>left</display-name>
+        <description>
+            Get the leftmost 'n' characters from a string.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>count</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Number of characters to get.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Will output:  &apos;&lt;A long piece of&gt;&apos;
+<![CDATA[ 
+&lt;<str:left count="15">A long piece of text which will get cut.</str:rightPad>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>right</name>
+        <tag-class>org.apache.taglibs.string.RightTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>right</display-name>
+        <description>
+            Get the rightmost 'n' characters from a string.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>count</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Number of characters to get.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Will output:  &apos;&lt;will get cut.&gt;&apos;
+<![CDATA[ 
+&lt;<str:right count="13">A long piece of text which will get cut.</str:rightPad>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>mid</name>
+        <tag-class>org.apache.taglibs.string.MidTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>mid</display-name>
+        <description>
+            Get 'n' characters from the inside of a string.
+            The start position may be set, or the default may be 
+            used. The default is to get the central characters.
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>start</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Position to start at.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>count</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Number of characters to get.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+Will output:  &apos;&lt;text which&gt;&apos;
+<![CDATA[ 
+&lt;<str:mid count="10">A long piece of text which will get cut.</str:rightPad>
+]]>       
+        </example>
+      </tag>
+	  
+      <tag>
+        <name>truncateNicely</name>
+        <tag-class>org.apache.taglibs.string.TruncateNicelyTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>truncateNicely</display-name>
+        <description>
+            A more intelligent substring.  It attempts to cut off a string after
+			a space, following predefined or user-supplied lower and upper limits,
+			useful for making short descriptions from long text. It strips the 
+            HTML out as a part of the code. Patches on a version which doesn't 
+            strip the HTML will be gratefully received. 
+        </description>
+        <availability>1.0</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>var</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>lower</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Mininum length to truncate at.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <attribute>
+          <name>upper</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Maximum length the string can be.  Will force a truncate at this point.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+		<attribute>
+		  <name>appendToEnd</name>
+		  <required>false</required>
+		  <rtexprvalue>true</rtexprvalue>
+		  <type>java.lang.String</type>
+		  <description>
+			  String to append to the end of the truncated string.
+		  </description>
+		  <availability>1.0</availability>
+		</attribute>		
+        <example>
+Will output:  &apos;&lt;The quick brown...&gt;&apos;
+<![CDATA[ 
+&lt;<str:truncateNicely lower="13" upper="20">The quick brown fox jumped over the lazy dog.</str:truncateNicely>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>join</name>
+        <tag-class>org.apache.taglibs.string.JoinTag</tag-class>
+        <body-content>EMPTY</body-content>
+        <display-name>decodeUrl</display-name>
+        <description>
+            Joins the elements of the provided array.
+        </description>
+        <availability>1.1</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>items</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.Object[]</type>
+          <description>
+              Array of elements to be joined.
+          </description>
+          <availability>1.1</availability>
+        </attribute>
+        <attribute>
+          <name>separator</name>
+          <required>false</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Separator string to be used.
+          </description>
+          <availability>1.1</availability>
+        </attribute>
+        <example>
+Useful to join elements of a list.
+<![CDATA[
+<% String[] users = new String[] { "john", "bob", "alice", "felipe" }; %>
+<str:join items="<%=users%>" separator=" - "/>
+]]>       
+        </example>
+      </tag>
+      <tag>
+        <name>split</name>
+        <tag-class>org.apache.taglibs.string.SplitTag</tag-class>
+        <body-content>JSP</body-content>
+        <display-name>split</display-name>
+        <description>
+           Splits the provided text into an array, separators specified.
+           The separator is not included in the returned String array and adjacent separators
+           are treated as one separator.
+        </description>
+        <availability>1.1</availability>
+        <restrictions>None</restrictions>
+        <attribute>
+          <name>separator</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Separator string to be used.
+          </description>
+          <availability>1.1</availability>
+        </attribute>
+        <attribute>
+          <name>var</name>
+          <required>true</required>
+          <rtexprvalue>true</rtexprvalue>
+          <type>java.lang.String</type>
+          <description>
+              Variable to store result in.
+          </description>
+          <availability>1.0</availability>
+        </attribute>
+        <example>
+This is the reverse of join and is the equivalent of StringTokenizer in a tag.
+<![CDATA[
+<%
+<str:split separator=" - " var="users">john - bob - alice - felipe</str:split>
+]]>       
+        </example>
+      </tag>
+
+</taglib>

Propchange: jakarta/taglibs/proper/string/trunk/src/main/resources/META-INF/taglibs-string.tld
------------------------------------------------------------------------------
    svn:eol-style = native
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.