You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ol...@apache.org on 2020/04/09 23:00:02 UTC

[tomcat-taglibs-standard] tag PRE_15703_CHANGES_JSTL_1_0 created (now 8708be8)

This is an automated email from the ASF dual-hosted git repository.

olamy pushed a change to tag PRE_15703_CHANGES_JSTL_1_0
in repository https://gitbox.apache.org/repos/asf/tomcat-taglibs-standard.git.


      at 8708be8  (commit)
This tag includes the following new commits:

     new cc81c22  This commit was manufactured by cvs2svn to create tag 'PRE_15703_CHANGES_JSTL_1_0'.
     new 8708be8  Moving the Standard taglib over to Tomcat

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat-taglibs-standard] 02/02: Moving the Standard taglib over to Tomcat

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

olamy pushed a commit to tag PRE_15703_CHANGES_JSTL_1_0
in repository https://gitbox.apache.org/repos/asf/tomcat-taglibs-standard.git

commit 8708be8bbcd25f2ea71f6f879866539b87bffabb
Author: Henri Yandell <ba...@apache.org>
AuthorDate: Mon Aug 17 04:16:09 2009 +0000

    Moving the Standard taglib over to Tomcat


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat-taglibs-standard] 01/02: This commit was manufactured by cvs2svn to create tag 'PRE_15703_CHANGES_JSTL_1_0'.

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

olamy pushed a commit to tag PRE_15703_CHANGES_JSTL_1_0
in repository https://gitbox.apache.org/repos/asf/tomcat-taglibs-standard.git

commit cc81c22984d4ecd93f18cb67dd69cfcc18a6cb8f
Author: no_author <de...@apache.org>
AuthorDate: Wed May 28 00:27:41 2003 +0000

    This commit was manufactured by cvs2svn to create tag
    'PRE_15703_CHANGES_JSTL_1_0'.
---
 README                                             |   18 -
 README.dist                                        |   50 -
 build.xml                                          |  327 ---
 conf/c-rt.tld                                      |  393 ---
 conf/c.tld                                         |  416 ---
 conf/fmt-rt.tld                                    |  403 ---
 conf/fmt.tld                                       |  442 ----
 conf/permittedTaglibs.tld                          |   42 -
 conf/scriptfree.tld                                |   60 -
 conf/sql-rt.tld                                    |  188 --
 conf/sql.tld                                       |  213 --
 conf/x-rt.tld                                      |  256 --
 conf/x.tld                                         |  273 --
 doc/conf/web.xml                                   |   13 -
 .../Conditionals_FunctionalDescription_1_EA1.html  |  152 --
 doc/web/DB_FunctionalDescription_1_EA3.html        |  645 -----
 doc/web/EcmaScriptEL.html                          |  599 -----
 ...anguageSupport_FunctionalDescription_2_EA1.html |  357 ---
 ...ExpressionTags_FunctionalDescription_1_EA1.html |  130 -
 doc/web/GettingStarted.html                        |  201 --
 doc/web/I18N_FunctionalDescription_5_EA2.html      |  989 -------
 doc/web/I18N_FunctionalDescription_6_EA3.html      | 1208 ---------
 .../IOT_Import_FunctionalDescription_5_EA2.html    |  357 ---
 .../IteratorTag_FunctionalDescription_2_EAI.html   |  430 ---
 doc/web/Overview.html                              |  156 --
 doc/web/ReleaseNotes.html                          |   78 -
 ...ML_ControlFlow_FunctionalDescription_1_EA2.html |  143 -
 doc/web/XML_Core_FunctionalDescription_2_EA2.html  |  296 ---
 ...Transformation_FunctionalDescription_3_EA2.html |  127 -
 doc/web/index.html                                 |   95 -
 doc/web/spel/index.html                            |  209 --
 doc/web/spel/spel.html                             |  533 ----
 examples/conf/jstl-examples.tld                    |  117 -
 examples/conf/web.xml                              |   81 -
 .../taglibs/jsptl/examples/beans/Address.java      |  201 --
 .../taglibs/jsptl/examples/beans/Customer.java     |  260 --
 .../taglibs/jsptl/examples/beans/Customers.java    |  140 -
 .../taglibs/jsptl/examples/i18n/Resources_de.java  |   23 -
 .../taglibs/jsptl/examples/i18n/Resources_it.java  |   17 -
 .../taglibs/jsptl/examples/startup/Init.java       |  183 --
 .../jsptl/examples/taglib/CustomerFmtTag.java      |  156 --
 .../jsptl/examples/taglib/EscapeHtmlTag.java       |  191 --
 .../taglibs/jsptl/examples/taglib/EvenTag.java     |   83 -
 .../taglibs/jsptl/examples/taglib/FileTag.java     |  175 --
 .../examples/taglib/NullAttributeException.java    |   81 -
 .../taglibs/jsptl/examples/taglib/OddTag.java      |   87 -
 .../taglibs/jsptl/examples/taglib/ResourceTag.java |  187 --
 .../jsptl/examples/taglib/UsCustomerTag.java       |  152 --
 .../apache/taglibs/jsptl/examples/util/IOBean.java |   98 -
 .../util/ServletResponseWrapperForWriter.java      |  101 -
 .../apache/taglibs/jsptl/examples/util/Util.java   |   95 -
 examples/web/ShowSource.jsp                        |   36 -
 examples/web/Templates/ExamplesTemplate.dwt        |   42 -
 examples/web/conditionals/Choose.jsp               |   27 -
 examples/web/conditionals/CustomLogicTag.jsp       |   36 -
 examples/web/conditionals/FailureLocal.jsp         |   27 -
 examples/web/conditionals/If.jsp                   |   19 -
 examples/web/conditionals/index.html               |   61 -
 examples/web/elsupport/Expr.jsp                    |   24 -
 examples/web/elsupport/Set.jsp                     |   33 -
 examples/web/elsupport/Set2.jsp                    |   16 -
 examples/web/elsupport/index.html                  |   62 -
 examples/web/format/FormatDateTime.jsp             |   58 -
 examples/web/format/FormatNumber.jsp               |   51 -
 examples/web/format/GermanLocale.jsp               |   18 -
 examples/web/format/GermanUmlautCorrect.jsp        |   19 -
 examples/web/format/GermanUmlautIncorrect.jsp      |   17 -
 examples/web/format/ItalianLocale.jsp              |   15 -
 examples/web/format/MissingResourceBundle.jsp      |   22 -
 examples/web/format/ParametricReplacement.jsp      |   44 -
 examples/web/format/PrefixAttribute.jsp            |   16 -
 examples/web/format/RequestEncoding.jsp            |   18 -
 examples/web/format/UndefinedKey.jsp               |   15 -
 examples/web/format/index.html                     |   80 -
 examples/web/global.css                            |    4 -
 examples/web/images/code.gif                       |  Bin 292 -> 0 bytes
 examples/web/images/execute.gif                    |  Bin 1242 -> 0 bytes
 examples/web/images/return.gif                     |  Bin 1231 -> 0 bytes
 examples/web/import/Absolute.jsp                   |   19 -
 examples/web/import/AbsoluteFtp.jsp                |   18 -
 examples/web/import/ContextRelative.jsp            |   20 -
 examples/web/import/Encode.jsp                     |   29 -
 examples/web/import/EncodeContextRelative.jsp      |   20 -
 examples/web/import/ExposeString.jsp               |   20 -
 examples/web/import/ExposeStringRelative.jsp       |   15 -
 examples/web/import/LocalQueryString.jsp           |   30 -
 examples/web/import/LocalSample.jsp                |   14 -
 examples/web/import/Param.jsp                      |   13 -
 examples/web/import/Relative.jsp                   |   18 -
 examples/web/import/StartSlash.jsp                 |   16 -
 examples/web/import/index.html                     |  101 -
 examples/web/import/index.jsp                      |   86 -
 examples/web/import/links.html                     |   46 -
 examples/web/import/relativeLinks.html             |   10 -
 examples/web/import/session.jsp                    |   33 -
 examples/web/index.html                            |  144 -
 examples/web/iterators/Collaboration.jsp           |   43 -
 examples/web/iterators/DataTypes.jsp               |   40 -
 examples/web/iterators/ForTokens.jsp               |   25 -
 examples/web/iterators/Simple.jsp                  |   16 -
 examples/web/iterators/SimpleRange.jsp             |   16 -
 examples/web/iterators/Status.jsp                  |   53 -
 examples/web/iterators/index.html                  |   79 -
 examples/web/misc/IteratorTest.jsp                 |   42 -
 examples/web/misc/index.html                       |   48 -
 examples/web/sql/DriverSetup.jsp                   |   22 -
 examples/web/sql/QueryDirect.jsp                   |   84 -
 examples/web/sql/QueryIterate.jsp                  |  102 -
 examples/web/sql/QueryParam.jsp                    |   70 -
 examples/web/sql/Transaction.jsp                   |   58 -
 examples/web/sql/Update.jsp                        |  113 -
 examples/web/sql/index.jsp                         |   83 -
 examples/web/sql/links.html                        |   32 -
 examples/web/sql/session.jsp                       |   19 -
 examples/web/xml/Expr.jsp                          |   29 -
 examples/web/xml/Filter.jsp                        |   33 -
 examples/web/xml/ForEach.jsp                       |   43 -
 examples/web/xml/If.jsp                            |   42 -
 examples/web/xml/Parse.jsp                         |   30 -
 examples/web/xml/ParseWithEntities.jsp             |   27 -
 examples/web/xml/Set.jsp                           |   31 -
 examples/web/xml/Transform.jsp                     |   58 -
 examples/web/xml/TransformWithInclusion.jsp        |   32 -
 examples/web/xml/When.jsp                          |   68 -
 examples/web/xml/included.xml                      |    3 -
 examples/web/xml/includedStylesheet.xsl            |    8 -
 examples/web/xml/index.html                        |   76 -
 lib/LICENSE                                        |    8 -
 lib/LICENSE-JAXEN                                  |   42 -
 lib/jaxen-full.jar                                 |  Bin 191881 -> 0 bytes
 lib/saxpath.jar                                    |  Bin 23563 -> 0 bytes
 .../jsp/jstl/core/ConditionalTagSupport.java       |  181 --
 src/javax/servlet/jsp/jstl/core/Config.java        |  406 ---
 src/javax/servlet/jsp/jstl/core/LoopTag.java       |   93 -
 src/javax/servlet/jsp/jstl/core/LoopTagStatus.java |  161 --
 .../servlet/jsp/jstl/core/LoopTagSupport.java      |  611 -----
 src/javax/servlet/jsp/jstl/fmt/LocaleSupport.java  |  205 --
 .../servlet/jsp/jstl/fmt/LocalizationContext.java  |  140 -
 src/javax/servlet/jsp/jstl/sql/Result.java         |  119 -
 src/javax/servlet/jsp/jstl/sql/ResultImpl.java     |  203 --
 src/javax/servlet/jsp/jstl/sql/ResultSupport.java  |  103 -
 .../servlet/jsp/jstl/sql/SQLExecutionTag.java      |   93 -
 .../servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java  |  218 --
 src/javax/servlet/jsp/jstl/tlv/ScriptFreeTLV.java  |  281 --
 .../standard/extra/spath/ASCII_CharStream.java     |  377 ---
 .../extra/spath/ASCII_UCodeESC_CharStream.java     |  520 ----
 .../taglibs/standard/extra/spath/AbsolutePath.java |   88 -
 .../standard/extra/spath/AttributePredicate.java   |   96 -
 .../standard/extra/spath/ParseException.java       |  191 --
 .../apache/taglibs/standard/extra/spath/Path.java  |   75 -
 .../taglibs/standard/extra/spath/Predicate.java    |   67 -
 .../taglibs/standard/extra/spath/RelativePath.java |   94 -
 .../taglibs/standard/extra/spath/SPathFilter.java  |  306 ---
 .../taglibs/standard/extra/spath/SPathParser.java  |  533 ----
 .../taglibs/standard/extra/spath/SPathParser.jj    |  297 ---
 .../standard/extra/spath/SPathParserConstants.java |   52 -
 .../extra/spath/SPathParserTokenManager.java       |  684 -----
 .../taglibs/standard/extra/spath/SPathTag.java     |  125 -
 .../apache/taglibs/standard/extra/spath/Step.java  |  170 --
 .../apache/taglibs/standard/extra/spath/Token.java |   81 -
 .../standard/extra/spath/TokenMgrError.java        |  133 -
 .../apache/taglibs/standard/extra/spath/spath.tld  |   35 -
 .../lang/jpath/JPathExpressionEvaluator.java       |  131 -
 .../lang/jpath/adapter/CollectionAdapter.java      |  145 -
 .../lang/jpath/adapter/ConversionException.java    |   77 -
 .../standard/lang/jpath/adapter/Convert.java       |  352 ---
 .../jpath/adapter/GregorianCalendarAdapter.java    |  106 -
 .../lang/jpath/adapter/IterationContext.java       |   66 -
 .../standard/lang/jpath/adapter/JSPAdapter.java    |   68 -
 .../standard/lang/jpath/adapter/JSPDate.java       |   65 -
 .../standard/lang/jpath/adapter/JSPList.java       |   70 -
 .../jpath/adapter/JSPListIterationContext.java     |   78 -
 .../standard/lang/jpath/adapter/JSPListUnion.java  |  146 --
 .../lang/jpath/adapter/StatusIterationContext.java |   80 -
 .../standard/lang/jpath/encoding/HtmlEncoder.java  |  116 -
 .../lang/jpath/encoding/OutputEncoder.java         |   91 -
 .../taglibs/standard/lang/jpath/example/9567       |    0
 .../taglibs/standard/lang/jpath/example/Event.java |   93 -
 .../standard/lang/jpath/example/Family.java        |  101 -
 .../standard/lang/jpath/example/Person.java        |  142 -
 .../lang/jpath/expression/ASCII_CharStream.java    |  432 ---
 .../lang/jpath/expression/AddDateFunction.java     |  282 --
 .../lang/jpath/expression/AdditionOperator.java    |  211 --
 .../lang/jpath/expression/AndOperator.java         |  208 --
 .../lang/jpath/expression/BooleanFunction.java     |  200 --
 .../lang/jpath/expression/BooleanLiteral.java      |  187 --
 .../lang/jpath/expression/CeilingFunction.java     |  200 --
 .../lang/jpath/expression/ConcatFunction.java      |  222 --
 .../lang/jpath/expression/ContainsFunction.java    |  225 --
 .../lang/jpath/expression/CountFunction.java       |  200 --
 .../lang/jpath/expression/CurrentFunction.java     |  196 --
 .../lang/jpath/expression/DateFunction.java        |  275 --
 .../lang/jpath/expression/DivisionOperator.java    |  210 --
 .../lang/jpath/expression/EncodeHtmlFunction.java  |  206 --
 .../lang/jpath/expression/EncodeUrlFunction.java   |  205 --
 .../lang/jpath/expression/EqualsOperator.java      |  239 --
 .../lang/jpath/expression/EvaluationException.java |  291 ---
 .../standard/lang/jpath/expression/Expression.java |  193 --
 .../standard/lang/jpath/expression/Expression.jj   | 1811 -------------
 .../standard/lang/jpath/expression/Expression.jjt  |  469 ----
 .../lang/jpath/expression/FilterOperator.java      |  298 ---
 .../lang/jpath/expression/FilteredIdentifier.java  |  149 --
 .../lang/jpath/expression/FloorFunction.java       |  200 --
 .../lang/jpath/expression/FormatDateFunction.java  |  266 --
 .../jpath/expression/FormatNumberFunction.java     |  265 --
 .../jpath/expression/GreaterThanEqualOperator.java |  240 --
 .../lang/jpath/expression/GreaterThanOperator.java |  240 --
 .../standard/lang/jpath/expression/Identifier.java |  390 ---
 .../lang/jpath/expression/Introspectable.java      |  160 --
 .../jpath/expression/IntrospectionOperator.java    |  252 --
 .../lang/jpath/expression/JJTParserState.java      |  254 --
 .../lang/jpath/expression/LastFunction.java        |  197 --
 .../jpath/expression/LessThanEqualOperator.java    |  240 --
 .../lang/jpath/expression/LessThanOperator.java    |  240 --
 .../lang/jpath/expression/ListLiteral.java         |  217 --
 .../standard/lang/jpath/expression/MethodCall.java |  379 ---
 .../standard/lang/jpath/expression/MethodCalls.jjt |  478 ----
 .../lang/jpath/expression/ModulusOperator.java     |  208 --
 .../jpath/expression/MultiplicationOperator.java   |  209 --
 .../standard/lang/jpath/expression/Node.java       |  229 --
 .../lang/jpath/expression/NotEqualsOperator.java   |  239 --
 .../lang/jpath/expression/NotFunction.java         |  200 --
 .../lang/jpath/expression/NotOperator.java         |  149 --
 .../lang/jpath/expression/NowFunction.java         |  191 --
 .../lang/jpath/expression/NumberFunction.java      |  200 --
 .../lang/jpath/expression/NumberLiteral.java       |  187 --
 .../standard/lang/jpath/expression/OrOperator.java |  208 --
 .../lang/jpath/expression/ParseException.java      |  246 --
 .../standard/lang/jpath/expression/Parser.java     | 2759 --------------------
 .../lang/jpath/expression/ParserConstants.java     |  163 --
 .../lang/jpath/expression/ParserTokenManager.java  | 1704 ------------
 .../lang/jpath/expression/ParserTreeConstants.java |  178 --
 .../lang/jpath/expression/PositionFunction.java    |  196 --
 .../standard/lang/jpath/expression/Predicate.java  |  190 --
 .../lang/jpath/expression/RollDateFunction.java    |  282 --
 .../lang/jpath/expression/RoundFunction.java       |  200 --
 .../lang/jpath/expression/ScopeLimitName.java      |  187 --
 .../lang/jpath/expression/ScopeLimitOperator.java  |  231 --
 .../standard/lang/jpath/expression/SimpleNode.java |  533 ----
 .../lang/jpath/expression/StartsWithFunction.java  |  225 --
 .../lang/jpath/expression/StringFunction.java      |  200 --
 .../jpath/expression/StringLengthFunction.java     |  201 --
 .../lang/jpath/expression/StringLiteral.java       |  187 --
 .../jpath/expression/SubstringAfterFunction.java   |  230 --
 .../jpath/expression/SubstringBeforeFunction.java  |  230 --
 .../lang/jpath/expression/SubstringFunction.java   |  232 --
 .../lang/jpath/expression/SubtractionOperator.java |  209 --
 .../lang/jpath/expression/SumFunction.java         |  206 --
 .../standard/lang/jpath/expression/Token.java      |  136 -
 .../lang/jpath/expression/TokenMgrError.java       |  188 --
 .../lang/jpath/expression/TokenizeFunction.java    |  232 --
 .../lang/jpath/expression/TranslateFunction.java   |  240 --
 .../lang/jpath/expression/UnionOperator.java       |  208 --
 .../lang/jpath/expression/UserFunction.java        |  148 --
 .../lang/jpath/expression/ValidationException.java |  291 ---
 .../standard/lang/jpath/expression/package.html    |   10 -
 .../apache/taglibs/standard/lang/jpath/readme.txt  |    2 -
 .../taglibs/standard/lang/jstl/AndOperator.java    |  142 -
 .../standard/lang/jstl/ArithmeticOperator.java     |  102 -
 .../taglibs/standard/lang/jstl/ArraySuffix.java    |  347 ---
 .../lang/jstl/BeanInfoIndexedProperty.java         |  118 -
 .../standard/lang/jstl/BeanInfoManager.java        |  413 ---
 .../standard/lang/jstl/BeanInfoProperty.java       |  116 -
 .../taglibs/standard/lang/jstl/BinaryOperator.java |  120 -
 .../lang/jstl/BinaryOperatorExpression.java        |  170 --
 .../taglibs/standard/lang/jstl/BooleanLiteral.java |  112 -
 .../taglibs/standard/lang/jstl/Coercions.java      | 1063 --------
 .../taglibs/standard/lang/jstl/ComplexValue.java   |  148 --
 .../taglibs/standard/lang/jstl/Constants.java      |  230 --
 .../taglibs/standard/lang/jstl/DivideOperator.java |  141 -
 .../taglibs/standard/lang/jstl/ELEvaluator.java    |  496 ----
 .../taglibs/standard/lang/jstl/ELException.java    |  149 --
 .../apache/taglibs/standard/lang/jstl/ELParser.jj  |  714 -----
 .../taglibs/standard/lang/jstl/EmptyOperator.java  |  146 --
 .../taglibs/standard/lang/jstl/EnumeratedMap.java  |  221 --
 .../standard/lang/jstl/EqualityOperator.java       |   93 -
 .../taglibs/standard/lang/jstl/EqualsOperator.java |  110 -
 .../taglibs/standard/lang/jstl/Evaluator.java      |  179 --
 .../taglibs/standard/lang/jstl/Expression.java     |   92 -
 .../standard/lang/jstl/ExpressionString.java       |  142 -
 .../standard/lang/jstl/FloatingPointLiteral.java   |  103 -
 .../standard/lang/jstl/GreaterThanOperator.java    |  157 --
 .../lang/jstl/GreaterThanOrEqualsOperator.java     |  157 --
 .../standard/lang/jstl/ImplicitObjects.java        |  617 -----
 .../standard/lang/jstl/IntegerDivideOperator.java  |  141 -
 .../taglibs/standard/lang/jstl/IntegerLiteral.java |  103 -
 .../standard/lang/jstl/JSTLVariableResolver.java   |  147 --
 .../standard/lang/jstl/LessThanOperator.java       |  157 --
 .../lang/jstl/LessThanOrEqualsOperator.java        |  157 --
 .../apache/taglibs/standard/lang/jstl/Literal.java |  106 -
 .../apache/taglibs/standard/lang/jstl/Logger.java  |  815 ------
 .../taglibs/standard/lang/jstl/MinusOperator.java  |  122 -
 .../standard/lang/jstl/ModulusOperator.java        |  170 --
 .../standard/lang/jstl/MultiplyOperator.java       |  122 -
 .../taglibs/standard/lang/jstl/NamedValue.java     |  124 -
 .../standard/lang/jstl/NotEqualsOperator.java      |  110 -
 .../taglibs/standard/lang/jstl/NotOperator.java    |  114 -
 .../taglibs/standard/lang/jstl/NullLiteral.java    |   98 -
 .../taglibs/standard/lang/jstl/OrOperator.java     |  142 -
 .../taglibs/standard/lang/jstl/PlusOperator.java   |  122 -
 .../standard/lang/jstl/PrimitiveObjects.java       |  281 --
 .../taglibs/standard/lang/jstl/PropertySuffix.java |  133 -
 .../standard/lang/jstl/RelationalOperator.java     |  112 -
 .../standard/lang/jstl/Resources.properties        |  132 -
 .../taglibs/standard/lang/jstl/StringLiteral.java  |  222 --
 .../standard/lang/jstl/UnaryMinusOperator.java     |  174 --
 .../taglibs/standard/lang/jstl/UnaryOperator.java  |   97 -
 .../lang/jstl/UnaryOperatorExpression.java         |  166 --
 .../taglibs/standard/lang/jstl/ValueSuffix.java    |   89 -
 .../standard/lang/jstl/VariableResolver.java       |   90 -
 .../standard/lang/jstl/parser/ELParser.java        |  929 -------
 .../lang/jstl/parser/ELParserConstants.java        |  113 -
 .../lang/jstl/parser/ELParserTokenManager.java     | 1028 --------
 .../standard/lang/jstl/parser/ParseException.java  |  192 --
 .../lang/jstl/parser/SimpleCharStream.java         |  401 ---
 .../taglibs/standard/lang/jstl/parser/Token.java   |   81 -
 .../standard/lang/jstl/parser/TokenMgrError.java   |  133 -
 .../taglibs/standard/lang/jstl/test/Bean1.java     |  315 ---
 .../taglibs/standard/lang/jstl/test/Bean2.java     |  101 -
 .../standard/lang/jstl/test/Bean2Editor.java       |   84 -
 .../standard/lang/jstl/test/EvaluationTest.java    |  451 ----
 .../standard/lang/jstl/test/PageContextImpl.java   |  332 ---
 .../standard/lang/jstl/test/ParserTest.java        |  285 --
 .../standard/lang/jstl/test/beans/Factory.java     |  102 -
 .../lang/jstl/test/beans/PrivateBean1a.java        |   69 -
 .../lang/jstl/test/beans/PrivateBean2b.java        |   70 -
 .../lang/jstl/test/beans/PrivateBean2c.java        |   70 -
 .../lang/jstl/test/beans/PrivateBean2d.java        |   70 -
 .../standard/lang/jstl/test/beans/PublicBean1.java |   69 -
 .../lang/jstl/test/beans/PublicBean1b.java         |   70 -
 .../lang/jstl/test/beans/PublicBean2a.java         |   70 -
 .../lang/jstl/test/beans/PublicInterface2.java     |   69 -
 .../standard/lang/jstl/test/evaluationTests.txt    | 1056 --------
 .../lang/jstl/test/evaluationTestsOutput.txt       | 2390 -----------------
 .../standard/lang/jstl/test/parserTests.txt        |  124 -
 .../standard/lang/jstl/test/parserTestsOutput.txt  |  217 --
 .../standard/lang/support/ExpressionEvaluator.java |  101 -
 .../lang/support/ExpressionEvaluatorManager.java   |  181 --
 .../taglibs/standard/resources/Resources.java      |  164 --
 .../standard/resources/Resources.properties        |  295 ---
 .../taglibs/standard/tag/common/core/CatchTag.java |  131 -
 .../standard/tag/common/core/ChooseTag.java        |  139 -
 .../standard/tag/common/core/DeclareTag.java       |   77 -
 .../standard/tag/common/core/ForEachSupport.java   |  429 ---
 .../standard/tag/common/core/ForTokensSupport.java |  129 -
 .../standard/tag/common/core/ImportSupport.java    |  558 ----
 .../tag/common/core/NullAttributeException.java    |   80 -
 .../standard/tag/common/core/OtherwiseTag.java     |   78 -
 .../standard/tag/common/core/OutSupport.java       |  200 --
 .../standard/tag/common/core/ParamParent.java      |   78 -
 .../standard/tag/common/core/ParamSupport.java     |  210 --
 .../standard/tag/common/core/RedirectSupport.java  |  163 --
 .../standard/tag/common/core/RemoveTag.java        |  142 -
 .../standard/tag/common/core/SetSupport.java       |  213 --
 .../standard/tag/common/core/UrlSupport.java       |  199 --
 .../taglibs/standard/tag/common/core/Util.java     |  136 -
 .../standard/tag/common/core/WhenTagSupport.java   |  108 -
 .../standard/tag/common/fmt/BundleSupport.java     |  348 ---
 .../standard/tag/common/fmt/FormatDateSupport.java |  239 --
 .../tag/common/fmt/FormatNumberSupport.java        |  360 ---
 .../standard/tag/common/fmt/MessageSupport.java    |  228 --
 .../standard/tag/common/fmt/ParamSupport.java      |  122 -
 .../standard/tag/common/fmt/ParseDateSupport.java  |  257 --
 .../tag/common/fmt/ParseNumberSupport.java         |  228 --
 .../tag/common/fmt/RequestEncodingSupport.java     |  141 -
 .../standard/tag/common/fmt/SetBundleSupport.java  |  137 -
 .../standard/tag/common/fmt/SetLocaleSupport.java  |  424 ---
 .../tag/common/fmt/SetTimeZoneSupport.java         |  147 --
 .../standard/tag/common/fmt/TimeZoneSupport.java   |  189 --
 .../standard/tag/common/sql/DataSourceUtil.java    |  178 --
 .../standard/tag/common/sql/DataSourceWrapper.java |  150 --
 .../tag/common/sql/DateParamTagSupport.java        |  147 --
 .../taglibs/standard/tag/common/sql/DriverTag.java |  176 --
 .../standard/tag/common/sql/ParamTagSupport.java   |   99 -
 .../standard/tag/common/sql/QueryTagSupport.java   |  326 ---
 .../standard/tag/common/sql/ResultImpl.java        |  205 --
 .../tag/common/sql/SetDataSourceTagSupport.java    |  168 --
 .../tag/common/sql/TransactionTagSupport.java      |  247 --
 .../standard/tag/common/sql/UpdateTagSupport.java  |  288 --
 .../standard/tag/common/xml/ExprSupport.java       |  126 -
 .../standard/tag/common/xml/ForEachTag.java        |  148 --
 .../taglibs/standard/tag/common/xml/IfTag.java     |  121 -
 .../standard/tag/common/xml/ParamSupport.java      |  119 -
 .../standard/tag/common/xml/ParseSupport.java      |  332 ---
 .../taglibs/standard/tag/common/xml/SetTag.java    |  147 --
 .../standard/tag/common/xml/TransformSupport.java  |  383 ---
 .../taglibs/standard/tag/common/xml/WhenTag.java   |  121 -
 .../taglibs/standard/tag/common/xml/XPathUtil.java |  286 --
 .../standard/tag/el/core/ExpressionUtil.java       |   93 -
 .../taglibs/standard/tag/el/core/ForEachTag.java   |  198 --
 .../taglibs/standard/tag/el/core/ForTokensTag.java |  214 --
 .../apache/taglibs/standard/tag/el/core/IfTag.java |  129 -
 .../taglibs/standard/tag/el/core/ImportTag.java    |  161 --
 .../taglibs/standard/tag/el/core/OutTag.java       |  156 --
 .../taglibs/standard/tag/el/core/ParamTag.java     |  151 --
 .../taglibs/standard/tag/el/core/RedirectTag.java  |  148 --
 .../taglibs/standard/tag/el/core/SetTag.java       |  167 --
 .../taglibs/standard/tag/el/core/UrlTag.java       |  149 --
 .../taglibs/standard/tag/el/core/WhenTag.java      |  127 -
 .../taglibs/standard/tag/el/fmt/BundleTag.java     |  151 --
 .../taglibs/standard/tag/el/fmt/FormatDateTag.java |  205 --
 .../standard/tag/el/fmt/FormatNumberTag.java       |  289 --
 .../taglibs/standard/tag/el/fmt/MessageTag.java    |  166 --
 .../taglibs/standard/tag/el/fmt/ParamTag.java      |  146 --
 .../taglibs/standard/tag/el/fmt/ParseDateTag.java  |  231 --
 .../standard/tag/el/fmt/ParseNumberTag.java        |  213 --
 .../standard/tag/el/fmt/RequestEncodingTag.java    |  146 --
 .../taglibs/standard/tag/el/fmt/SetBundleTag.java  |  139 -
 .../taglibs/standard/tag/el/fmt/SetLocaleTag.java  |  150 --
 .../standard/tag/el/fmt/SetTimeZoneTag.java        |  139 -
 .../taglibs/standard/tag/el/fmt/TimeZoneTag.java   |  139 -
 .../taglibs/standard/tag/el/sql/DateParamTag.java  |  101 -
 .../taglibs/standard/tag/el/sql/ParamTag.java      |   82 -
 .../taglibs/standard/tag/el/sql/QueryTag.java      |  159 --
 .../standard/tag/el/sql/SetDataSourceTag.java      |  140 -
 .../standard/tag/el/sql/TransactionTag.java        |   98 -
 .../taglibs/standard/tag/el/sql/UpdateTag.java     |   99 -
 .../taglibs/standard/tag/el/xml/ExprTag.java       |  156 --
 .../taglibs/standard/tag/el/xml/ParamTag.java      |  147 --
 .../taglibs/standard/tag/el/xml/ParseTag.java      |  166 --
 .../taglibs/standard/tag/el/xml/TransformTag.java  |  185 --
 .../taglibs/standard/tag/rt/core/ForEachTag.java   |  107 -
 .../taglibs/standard/tag/rt/core/ForTokensTag.java |  116 -
 .../apache/taglibs/standard/tag/rt/core/IfTag.java |  117 -
 .../taglibs/standard/tag/rt/core/ImportTag.java    |   90 -
 .../taglibs/standard/tag/rt/core/OutTag.java       |   87 -
 .../taglibs/standard/tag/rt/core/ParamTag.java     |   84 -
 .../taglibs/standard/tag/rt/core/RedirectTag.java  |   84 -
 .../taglibs/standard/tag/rt/core/SetTag.java       |   88 -
 .../taglibs/standard/tag/rt/core/UrlTag.java       |   84 -
 .../taglibs/standard/tag/rt/core/WhenTag.java      |  116 -
 .../taglibs/standard/tag/rt/fmt/BundleTag.java     |   84 -
 .../taglibs/standard/tag/rt/fmt/FormatDateTag.java |  104 -
 .../standard/tag/rt/fmt/FormatNumberTag.java       |  131 -
 .../taglibs/standard/tag/rt/fmt/MessageTag.java    |   84 -
 .../taglibs/standard/tag/rt/fmt/ParamTag.java      |   79 -
 .../taglibs/standard/tag/rt/fmt/ParseDateTag.java  |  118 -
 .../standard/tag/rt/fmt/ParseNumberTag.java        |  109 -
 .../standard/tag/rt/fmt/RequestEncodingTag.java    |   79 -
 .../taglibs/standard/tag/rt/fmt/SetBundleTag.java  |   79 -
 .../taglibs/standard/tag/rt/fmt/SetLocaleTag.java  |   84 -
 .../standard/tag/rt/fmt/SetTimeZoneTag.java        |   79 -
 .../taglibs/standard/tag/rt/fmt/TimeZoneTag.java   |   79 -
 .../taglibs/standard/tag/rt/sql/DateParamTag.java  |   76 -
 .../taglibs/standard/tag/rt/sql/ParamTag.java      |   71 -
 .../taglibs/standard/tag/rt/sql/QueryTag.java      |  117 -
 .../standard/tag/rt/sql/SetDataSourceTag.java      |   91 -
 .../standard/tag/rt/sql/TransactionTag.java        |   94 -
 .../taglibs/standard/tag/rt/sql/UpdateTag.java     |   91 -
 .../taglibs/standard/tag/rt/xml/ExprTag.java       |   80 -
 .../taglibs/standard/tag/rt/xml/ParamTag.java      |   84 -
 .../taglibs/standard/tag/rt/xml/ParseTag.java      |   89 -
 .../taglibs/standard/tag/rt/xml/TransformTag.java  |  101 -
 .../apache/taglibs/standard/tei/DeclareTEI.java    |   82 -
 .../apache/taglibs/standard/tei/ForEachTEI.java    |   84 -
 src/org/apache/taglibs/standard/tei/ImportTEI.java |   79 -
 src/org/apache/taglibs/standard/tei/Util.java      |   74 -
 .../apache/taglibs/standard/tei/XmlParseTEI.java   |   91 -
 .../taglibs/standard/tei/XmlTransformTEI.java      |   83 -
 .../apache/taglibs/standard/tlv/JstlSqlTLV.java    |    3 +-
 xml/intro.xml                                      |  170 --
 461 files changed, 2 insertions(+), 85883 deletions(-)

diff --git a/README b/README
deleted file mode 100644
index fd7fa6b..0000000
--- a/README
+++ /dev/null
@@ -1,18 +0,0 @@
-JSP Standard Tag Library (JSTL)
-Release: Beta 2
-
-Thanks for downloading the JSTL Beta 2 release.  We hope you find the tags,
-documents, and examples here of interest.  We're curious to hear your
-feedback on this release, which represents work in progress toward a
-standard JSP Tag Library.  Please contact us at
-
-	mailto:jsr052-comments@sun.com
-
-with any comments you might have.
-
-See the 'doc/web' directory for documentation about this release.
-
-Enjoy!
-
-  -- Shawn Bayern <ba...@essentially.net>
-     on behalf of JSR-052 (JSTL) Expert Group
diff --git a/README.dist b/README.dist
deleted file mode 100644
index 8dc4629..0000000
--- a/README.dist
+++ /dev/null
@@ -1,50 +0,0 @@
-JSP Standard Tag Library (JSTL)
-Release: Beta 2
-
-Thanks for downloading the JSTL Beta 2 release.  We hope you find the tags,
-documents, and examples here of interest.  We're curious to hear your
-feedback on this release, which represents work in progress toward a
-standard JSP Tag Library.  Please contact us at
-
-	mailto:jsr052-comments@sun.com
-
-with any comments you might have.
-
-BINARY DISTRIBUTION
-
-This is the binary distribution of the Beta 2 JSTL reference
-implementation.
-
-The following two files are standalone web applications (WARs) that are
-designed to work out of the box in order to help you learn JSTL:
-
-   standard-doc.war                Documentation
-   standard-examples.war           Simple examples of JSTL tags
-
-To use this distribution with your own web applications, simply copy the JAR
-files in the 'lib' directory to your application's WEB-INF/lib directory.
-Then, import JSTL into your pages with the following directives:
-
-  CORE LIBRARY
-    EL:  <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
-    RT:  <%@ taglib prefix="c_rt" uri="http://java.sun.com/jstl/core_rt" %>
-
-  XML LIBRARY
-    EL:  <%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
-    RT:  <%@ taglib prefix="x_rt" uri="http://java.sun.com/jstl/xml_rt" %>
-
-  FMT LIBRARY 
-    EL:  <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
-    RT:  <%@ taglib prefix="fmt_rt" uri="http://java.sun.com/jstl/fmt_rt" %>
-
-  SQL LIBRARY
-    EL:  <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
-    RT:  <%@ taglib prefix="sql_rt" uri="http://java.sun.com/jstl/sql_rt" %>
-
-Please join the taglibs-user@jakarta.apache.org mailing list if you have
-general usage questions about JSTL.
-
-Enjoy!
-
-  -- Shawn Bayern <ba...@essentially.net>
-     on behalf of JSR-052 (JSTL) Expert Group
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 93072ba..0000000
--- a/build.xml
+++ /dev/null
@@ -1,327 +0,0 @@
-
-
-<project name="standard" default="main" basedir=".">
-
-    <!-- ******************** Adjustable Properties *********************** -->
-
-    <property file="../build.properties"/>
-    <property file="../common.properties"/>
-    <property name="jaxen-full.jar"   value="lib/jaxen-full.jar"/>
-    <property name="saxpath.jar"      value="lib/saxpath.jar"/>
-    <property name="classpath" value="${servlet23.jar}"/>
-    <property name="taglib.name"    value="standard"/>
-
-    <!-- ****************** Project Standard Properties ******************* -->
-
-    <!-- *********************** Default Properties ********************** -->
-
-    <!-- ********************* Derived Properties ************************* -->
-
-    <!--
-
-        These property values are derived from the previously defined values,
-	and should not normally be overridden from the command line.
-
-        build.doc                   Target directory for documentation app
-        build.examples		    Target directory for examples app
-        build.library               Target directory for tag library
-	dist.doc                    Destination WAR for documentation app
-	dist.examples		    Destination WAR for examples app
-	dist.library                Destination JAR for tag library
-	dist.tld                    Destination TLD file for tag library
-
-    -->
-
-    <!--
-    <property name="dist-jr.tld"    value="${dist.dir}/${taglib.name}/${taglib.name}-jr.tld"/>
-    <property name="dist-jx.tld"    value="${dist.dir}/${taglib.name}/${taglib.name}-jx.tld"/>
-    <property name="dist-x.tld"    value="${dist.dir}/${taglib.name}/${taglib.name}-x.tld"/>
-    <property name="dist-scriptfree.tld"    value="${dist.dir}/${taglib.name}/${taglib.name}-scriptfree.tld"/>
-    -->
-    <property name="jxpath.jar"	    value="lib/commons-JXPath-0.1-dev.jar"/>
-
-  <!-- ********************** Destination Preparation ********************* -->
-
-  <target name="prepare">
-    <available file="${jaxp-api.jar}" property="isJaxp12" value="true"/>
-    <!-- Make sure required dependencies are available -->
-    <antcall target="checkRequiredFile">
-       <param name="file" value="${servlet23.jar}"/>
-       <param name="fail.message" value="A jar file containing the Servlet 2.3 and JSP1.2 classes is required to compile the Standard Taglib.  Please define the property servlet23.jar in your build.properties file and ensure that the file exists."/>
-    </antcall>
-    <antcall target="checkRequiredFile">
-       <param name="file" value="${jdbc2_0-stdext.jar}"/>     
-       <param name="fail.message" value="This build process for the Standard Taglib requires the Sun JDBC 2.0 Optional Package (Standard Extensions).  Please define the property jdbc2_0-stdext.jar in your build.properties file and ensure that the file exists."/>
-    </antcall>
-
-    <!-- JAXP 1.1 and 1.2 -->
-    <antcall target="checkJaxp11"/>
-    <antcall target="checkJaxp12"/>
-    <antcall target="checkRequiredFile">
-       <param name="file" value="${xalan.jar}"/>     
-       <param name="fail.message" value="This build process for the Standard Taglib requires xalan.jar.  Please define the property xalan.jar in your build.properties file and ensure that the file exists."/>
-    </antcall>
-
-    <!-- Set up build directories -->
-    <mkdir dir="${build.dir}"/>
-    <mkdir dir="${build.doc}"/>
-    <mkdir dir="${build.doc}/WEB-INF"/>
-    <mkdir dir="${build.doc}/WEB-INF/classes"/>
-    <mkdir dir="${build.doc}/WEB-INF/lib"/>
-    <mkdir dir="${build.examples}"/>
-    <mkdir dir="${build.examples}/WEB-INF"/>
-    <mkdir dir="${build.examples}/WEB-INF/classes"/>
-    <mkdir dir="${build.examples}/WEB-INF/lib"/>
-    <mkdir dir="${build.library}"/>
-    <mkdir dir="${build.library}/META-INF"/>
-    <!-- Set up distribution directory -->
-    <mkdir dir="${dist.dir}"/>
-    <mkdir dir="${dist.dir}/${taglib.name}"/>
-  </target>
-
-  <!-- **************** JAXP 1.1, 1.2 checks ******************** -->
-
-  <target name="checkJaxp11" unless="isJaxp12">
-    <echo>in JAXP11</echo>
-    <antcall target="checkRequiredFile">
-       <param name="file" value="${crimson.jar}"/>     
-       <param name="fail.message" value="This build process for the Standard Taglib requires a JAXP 1.1-compliant XML parser, such as crimson.jar.  Please define the property crimson.jar in your build.properties file and ensure that the file exists."/>
-    </antcall>
-  </target>
-
-  <target name="checkJaxp12" if="isJaxp12">
-    <echo>in JAXP12</echo>
-    <antcall target="checkRequiredFile">
-       <param name="file" value="${jaxp-api.jar}"/>     
-       <param name="fail.message" value="This build process for the Standard Taglib requires jaxp-api.jar from JAXP 1.2.  Please define the property jaxp-api.jar in your build.properties file and ensure that the file exists."/>
-    </antcall>
-    <antcall target="checkRequiredFile">
-       <param name="file" value="${dom.jar}"/>     
-       <param name="fail.message" value="This build process for the Standard Taglib requires dom.jar from JAXP 1.2.  Please define the property dom.jar in your build.properties file and ensure that the file exists."/>
-    </antcall>
-    <antcall target="checkRequiredFile">
-       <param name="file" value="${sax.jar}"/>     
-       <param name="fail.message" value="This build process for the Standard Taglib requires sax.jar from JAXP 1.2.  Please define the property sax.jar in your build.properties file and ensure that the file exists."/>
-    </antcall>
-    <antcall target="checkRequiredFile">
-       <param name="file" value="${xercesImpl.jar}"/>     
-       <param name="fail.message" value="This build process for the Standard Taglib requires a xercesImpl.jar from JAXP 1.2.  Please define the property xercesImpl.jar in your build.properties file and ensure that the file exists."/>
-    </antcall>
-  </target>
-
-  <!-- **************** JAXP 1.1, 1.2 copying ******************** -->
-
-  <target name="copyJaxp11" unless="isJaxp12">
-    <echo>copy JAXP11</echo>
-    <copy file="${crimson.jar}" tofile="${build.examples}/WEB-INF/lib/crimson.jar" />
-  </target>
-
-  <target name="copyJaxp12" if="isJaxp12">
-    <echo>copy JAXP11</echo>
-    <copy file="${jaxp-api.jar}" tofile="${build.examples}/WEB-INF/lib/jaxp-api.jar" />
-    <copy file="${dom.jar}" tofile="${build.examples}/WEB-INF/lib/dom.jar" />
-    <copy file="${sax.jar}" tofile="${build.examples}/WEB-INF/lib/sax.jar" />
-    <copy file="${xercesImpl.jar}" tofile="${build.examples}/WEB-INF/lib/xercesImpl.jar" />
-  </target>
-
-  <target name="copyJaxp11Dist" unless="isJaxp12">
-    <copy file="${crimson.jar}" todir="${dist.dir}/${taglib.name}/lib"/>
-  </target>
-
-  <target name="copyJaxp12Dist" if="isJaxp12">
-    <copy file="${dom.jar}" todir="${dist.dir}/${taglib.name}/lib"/>
-    <copy file="${sax.jar}" todir="${dist.dir}/${taglib.name}/lib"/>
-    <copy file="${xercesImpl.jar}" todir="${dist.dir}/${taglib.name}/lib"/>
-    <copy file="${jaxp-api.jar}" todir="${dist.dir}/${taglib.name}/lib"/>
-  </target>
-
-  <!-- **************** Compile Tag Library Components ******************** -->
-
-  <!-- Compile the documentation application -->
-  <target name="documentation" depends="prepare">
-    <copy todir="${build.doc}/WEB-INF">
-      <fileset dir="${doc.src}/conf"/>
-    </copy>
-    <style in="${xml.src}/intro.xml"
-           destdir="${build.doc}"                                          
-           out="${build.doc}/intro.html"
-           style="${taglibs.xsl}">
-      <param name="prefix" expression="../../"/>
-    </style>
-    <copy todir="${build.doc}">
-      <fileset dir="${doc.src}/web">
-        <include name="**/*.html"/>
-      </fileset>
-    </copy>
-  </target>
-
-  <!-- Compile the examples application -->
-  <target name="examples" depends="library-dist">
-    <copy todir="${build.examples}/WEB-INF">
-      <fileset dir="${examples.src}/conf"/>
-    </copy>
-    <copy todir="${build.examples}">
-      <fileset dir="${examples.src}/web"/>
-    </copy>
-    <!-- Copy implementation-detail jar files -->
-    <copy todir="${build.examples}/WEB-INF/lib">
-      <fileset dir="lib" includes="*.jar"/>
-    </copy>
-    <copy file="${jdbc2_0-stdext.jar}" tofile="${build.examples}/WEB-INF/lib/jdbc2_0-stdext.jar" />
-    <copy file="${xalan.jar}" tofile="${build.examples}/WEB-INF/lib/xalan.jar" />
-
-    <antcall target="copyJaxp11"/>
-    <antcall target="copyJaxp12"/>
-
-    <!-- Copy required external API jar files -->
-    <!-- Copy the 'standard' TLD files -->
-    <copy todir="${build.examples}/WEB-INF">
-      <fileset dir="conf" includes="*.tld"/>
-    </copy>
-    <!-- Copy the 'standard' jar files -->
-    <copy file="${dist.library}/lib/standard.jar"
-              tofile="${build.examples}/WEB-INF/lib/standard.jar"/>
-    <copy file="${dist.library}/lib/jstl.jar"
-              tofile="${build.examples}/WEB-INF/lib/jstl.jar"/>
-    <javac srcdir="${examples.src}" destdir="${build.examples}/WEB-INF/classes"
-        classpath="${servlet23.jar}:${build.library}"/>
-  </target>
-
-  <!-- Compile the tag library itself -->
-  <target name="library" depends="prepare">
-    <copy todir="${build.library}/META-INF">
-      <fileset dir="conf" includes="*.tld"/>
-    </copy>
-    <!--
-    <copy file="${conf.src}/jx.tld"
-              tofile="${build.library}/META-INF/jx.tld"/>
-    <copy file="${conf.src}/jr.tld"
-              tofile="${build.library}/META-INF/jr.tld"/>
-    <copy file="${conf.src}/x.tld"
-              tofile="${build.library}/META-INF/x.tld"/>
-    -->
-    <copy todir="${build.library}">
-	<fileset dir="${library.src}">
-	    <include name="**/*.properties"/>
-	</fileset>
-    </copy>
-<!--
-    - [ for optional JXPath (versus integrated JXPath) ... ] -
-    <javac srcdir="${library.src}" destdir="${build.library}"
-           classpath="${servlet23.jar}"
-	   excludes="org/apache/taglibs/standard/lang/jxpath/**"
-	   debug="on"/>
-    <available file="${jxpath.jar}" property="jxpath.available"/>
-    <antcall target="libraryJXPath"/>
-  </target>
-
-  <target name="libraryJXPath" if="jxpath.available">
-    <javac srcdir="${library.src}" destdir="${build.library}"
-	classpath="${servlet23.jar}"
-	includes="org/apache/taglibs/standard/lang/jxpath/**"
-	debug="on"/>
-  </target>
--->
-
-      <!-- JAXP 1.1 -->
-      <javac srcdir="${library.src}" destdir="${build.library}"
-         classpath="${servlet23.jar}:${jdbc2_0-stdext.jar}:${crimson.jar}:${xalan.jar}:${jaxen-full.jar}:${saxpath.jar}"
-         debug="on"/>
-
-      <!-- JAXP 1.2
-      <javac srcdir="${library.src}" destdir="${build.library}"
-         classpath="${servlet23.jar}:${jdbc2_0-stdext.jar}:${jaxp-api.jar}:${dom.jar}:${sax.jar}:${xercesImpl.jar}:${xalan.jar}:${jaxen-full.jar}:${saxpath.jar}"
-         debug="on"/>
-      -->
-
-  </target>
-
-  <!-- Compile the library as well as the associated applications -->
-  <target name="main" depends="library,documentation,examples"/>
-
-
-  <!-- ******************* Create Distribution Files ********************** -->
-
-  <!-- Create the documentation application WAR file -->
-  <target name="documentation-dist" depends="documentation">
-    <jar jarfile="${dist.doc}" basedir="${build.doc}" excludes="intro.html"/>
-    <mkdir dir="${taglibs.doc}"/>
-    <copy todir="${taglibs.doc}">
-      <fileset dir="${build.doc}">
-        <exclude name="WEB-INF/**"/>
-      </fileset>
-    </copy>
-  </target>
-
-  <!-- Create the examples application WAR file -->
-  <target name="examples-dist" depends="examples">
-    <jar jarfile="${dist.examples}" basedir="${build.examples}"/>
-  </target>
-
-  <!-- Create the library distribution files -->
-  <target name="library-dist" depends="library">
-   <mkdir dir="${dist.library}/lib"/>
-   <mkdir dir="${dist.library}/tld"/>
-   <jar jarfile="${dist.library}/lib/standard.jar"
-         basedir="${build.library}"
-         excludes="javax/**"/>
-    <!-- Create the 'standard' API jar -->
-    <jar jarfile="${dist.library}/lib/jstl.jar"
-         basedir="${build.library}"
-         includes="javax/**"/>
-    <copy file="README.dist" tofile="${dist.dir}/${taglib.name}/README"/>
-    <copy file="${jaxen-full.jar}" todir="${dist.dir}/${taglib.name}/lib"/>
-    <copy file="${saxpath.jar}" todir="${dist.dir}/${taglib.name}/lib"/>
-    <copy file="${jdbc2_0-stdext.jar}" todir="${dist.dir}/${taglib.name}/lib"/>
-    <copy file="${xalan.jar}" todir="${dist.dir}/${taglib.name}/lib"/>
-
-    <antcall target="copyJaxp11Dist"/>
-    <antcall target="copyJaxp12Dist"/>
-
-    <copy file="${conf.src}/c.tld" todir="${dist.dir}/${taglib.name}/tld"/>
-    <copy file="${conf.src}/c-rt.tld" todir="${dist.dir}/${taglib.name}/tld"/>
-    <copy file="${conf.src}/x.tld" todir="${dist.dir}/${taglib.name}/tld"/>
-    <copy file="${conf.src}/x-rt.tld" todir="${dist.dir}/${taglib.name}/tld"/>
-    <copy file="${conf.src}/fmt.tld" todir="${dist.dir}/${taglib.name}/tld"/>
-    <copy file="${conf.src}/fmt-rt.tld" todir="${dist.dir}/${taglib.name}/tld"/>
-    <copy file="${conf.src}/sql.tld" todir="${dist.dir}/${taglib.name}/tld"/>
-    <copy file="${conf.src}/sql-rt.tld" todir="${dist.dir}/${taglib.name}/tld"/>
-  </target>
-
-  <!-- Create the entire set of distribution files -->
-  <target name="dist" depends="library-dist,examples-dist,documentation-dist"/>
-
-
-
-  <!-- ************************ Utility Commands ************************** -->
-
-  <!-- Delete output directories and files so we can build from scratch -->
-  <target name="clean">
-    <delete dir="${build.dir}/${taglib.name}"/>
-    <delete dir="${dist.dir}/${taglib.name}"/>
-  </target>
-
-  <!-- =================================================================== -->
-  <!-- Scripts used with antcall for checking for required classes or jars -->
-  <!-- Must provide "class" or "file" and "fail.message" parameters        -->
-  <!-- =================================================================== -->
-  <target name="checkRequiredClass">
-    <available classname="${class}" property="requirement.satisfied"/>
-    <antcall target="checkRequired.fail"/>
-  </target>
-  <target name="checkRequiredFile">
-    <available file="${file}" property="requirement.satisfied"/>
-    <antcall target="checkRequired.fail"/>
-  </target>
-  <target name="checkOptionalFile">
-    <available file="${file}" property="requirement.satisfied"/>
-    <antcall target="checkRequired.warn"/>
-  </target>
-  <target name="checkRequired.fail" unless="requirement.satisfied">
-    <fail message="${fail.message}"/>
-  </target>
-  <target name="checkRequired.warn" unless="requirement.satisfied">
-    <echo message="WARNING: ${warn.message}"/>
-  </target>
-
-</project>
diff --git a/conf/c-rt.tld b/conf/c-rt.tld
deleted file mode 100644
index 2203657..0000000
--- a/conf/c-rt.tld
+++ /dev/null
@@ -1,393 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>c_rt</short-name>
-  <uri>http://java.sun.com/jstl/core_rt</uri>
-  <display-name>JSTL core RT</display-name>
-  <description>JSTL 1.0 core library</description>
-
-  <validator>
-    <validator-class>
-        org.apache.taglibs.standard.tlv.JstlCoreTLV
-    </validator-class>
-    <description>
-        Provides core validation features for JSTL tags.
-    </description>
-  </validator>
-
-  <tag>
-    <name>catch</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.CatchTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Catches any Throwable that occurs in its body and optionally
-        exposes it.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>choose</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.ChooseTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Simple conditional tag that establishes a context for
-	mutually exclusive conditional operations, marked by
-	&lt;when&gt; and &lt;otherwise&gt;
-    </description>
-  </tag>
-
-  <tag>
-    <name>if</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.IfTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Simple conditional tag, which evalutes its body if the
-	supplied condition is true and optionally exposes a Boolean
-	scripting variable representing the evaluation of this condition
-    </description>
-    <attribute>
-        <name>test</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-	<type>boolean</type>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>import</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.ImportTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.ImportTEI</tei-class>
-    <body-content>JSP</body-content>
-    <description>
-        Retrieves an absolute or relative URL and exposes its contents
-        to either the page, a String in 'var', or a Reader in 'varReader'.
-    </description>
-    <attribute>
-        <name>url</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>varReader</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>context</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>charEncoding</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>forEach</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.ForEachTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.ForEachTEI</tei-class>
-    <body-content>JSP</body-content>
-    <description>
-	The basic iteration tag, accepting many different
-        collection types and supporting subsetting and other
-        functionality
-    </description>
-    <attribute>
-	<name>items</name>
-	<required>false</required>
-	<rtexprvalue>true</rtexprvalue>
-	<type>java.lang.Object</type>
-    </attribute>
-    <attribute>
-	<name>begin</name>
-	<required>false</required>
-	<rtexprvalue>true</rtexprvalue>
-	<type>int</type>
-    </attribute>
-    <attribute>
-	<name>end</name>
-	<required>false</required>
-	<rtexprvalue>true</rtexprvalue>
-	<type>int</type>
-    </attribute>
-    <attribute>
-	<name>step</name>
-	<required>false</required>
-	<rtexprvalue>true</rtexprvalue>
-	<type>int</type>
-    </attribute>
-    <attribute>
-	<name>var</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>varStatus</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>forTokens</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.ForTokensTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Iterates over tokens, separated by the supplied delimeters
-    </description>
-    <attribute>
-	<name>items</name>
-	<required>true</required>
-	<rtexprvalue>true</rtexprvalue>
-	<type>java.lang.String</type>
-    </attribute>
-    <attribute>
-	<name>delims</name>
-	<required>true</required>
-	<rtexprvalue>true</rtexprvalue>
-	<type>java.lang.String</type>
-    </attribute>
-    <attribute>
-	<name>begin</name>
-	<required>false</required>
-	<rtexprvalue>true</rtexprvalue>
-	<type>int</type>
-    </attribute>
-    <attribute>
-	<name>end</name>
-	<required>false</required>
-	<rtexprvalue>true</rtexprvalue>
-	<type>int</type>
-    </attribute>
-    <attribute>
-	<name>step</name>
-	<required>false</required>
-	<rtexprvalue>true</rtexprvalue>
-	<type>int</type>
-    </attribute>
-    <attribute>
-	<name>var</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>varStatus</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>out</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.OutTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Like &lt;%= ... &gt;, but for expressions.
-    </description> 
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>default</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>escapeXml</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-
-  <tag>
-    <name>otherwise</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.OtherwiseTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Subtag of &lt;choose&gt; that follows &lt;when&gt; tags
-        and runs only if all of the prior conditions evaluated to
-        'false'
-    </description>
-  </tag>
-
-  <tag>
-    <name>param</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Adds a parameter to a containing 'import' tag's URL.
-    </description>
-    <attribute>
-        <name>name</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>redirect</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.RedirectTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Redirects to a new URL.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>url</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>context</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>remove</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.RemoveTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Removes a scoped variable (from a particular scope, if specified).
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
- <tag>
-    <name>set</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.SetTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Sets the result of an expression evaluation in a 'scope'
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>target</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>property</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>url</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.UrlTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Creates a URL with optional query parameters.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>context</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>when</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.core.WhenTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Subtag of &lt;choose&gt; that includes its body if its
-	condition evalutes to 'true'
-    </description>
-    <attribute>
-        <name>test</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-	<type>boolean</type>
-    </attribute>
-  </tag>
-
-</taglib>
diff --git a/conf/c.tld b/conf/c.tld
deleted file mode 100644
index 9c137b3..0000000
--- a/conf/c.tld
+++ /dev/null
@@ -1,416 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>c</short-name>
-  <uri>http://java.sun.com/jstl/core</uri>
-  <display-name>JSTL core</display-name>
-  <description>JSTL 1.0 core library</description>
-
-  <validator>
-    <validator-class>
-	org.apache.taglibs.standard.tlv.JstlCoreTLV
-    </validator-class>
-    <init-param>
-	<param-name>expressionAttributes</param-name>
-	<param-value>
-	    out:value
-	    out:default
-	    out:escapeXml
-	    if:test
-	    import:url
-	    import:context
-	    import:charEncoding
-	    forEach:items
-	    forEach:begin
-	    forEach:end
-	    forEach:step
-	    forTokens:items
-	    forTokens:begin
-	    forTokens:end
-	    forTokens:step
-	    param:encode
-	    param:name
-	    param:value
-            redirect:context
-            redirect:url
-	    set:property
-	    set:target
-	    set:value
-	    url:context
-	    url:value
-	    when:test
-	</param-value>
-	<description>
-	    Whitespace-separated list of colon-separated token pairs
-	    describing tag:attribute combinations that accept expressions.
-	    The validator uses this information to determine which
-	    attributes need their syntax validated.
-	</description>
-     </init-param>
-  </validator>
-
-  <tag>
-    <name>catch</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.CatchTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Catches any Throwable that occurs in its body and optionally
-        exposes it.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>choose</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.ChooseTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Simple conditional tag that establishes a context for
-        mutually exclusive conditional operations, marked by
-        &lt;when&gt; and &lt;otherwise&gt;
-    </description>
-  </tag>
-
-  <tag>
-    <name>out</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.OutTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Like &lt;%= ... &gt;, but for expressions.
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>default</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>escapeXml</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>if</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.IfTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Simple conditional tag, which evalutes its body if the
-        supplied condition is true and optionally exposes a Boolean
-        scripting variable representing the evaluation of this condition
-    </description>
-    <attribute>
-        <name>test</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>import</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.ImportTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.ImportTEI</tei-class>
-    <body-content>JSP</body-content>
-    <description>
-	Retrieves an absolute or relative URL and exposes its contents
-	to either the page, a String in 'var', or a Reader in 'varReader'.
-    </description>
-    <attribute>
-        <name>url</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>varReader</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>context</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>charEncoding</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>forEach</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.ForEachTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.ForEachTEI</tei-class>
-    <body-content>JSP</body-content>
-    <description>
-	The basic iteration tag, accepting many different
-        collection types and supporting subsetting and other
-        functionality
-    </description>
-    <attribute>
-	<name>items</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>begin</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>end</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>step</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>var</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>varStatus</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>forTokens</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.ForTokensTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Iterates over tokens, separated by the supplied delimeters
-    </description>
-    <attribute>
-	<name>items</name>
-	<required>true</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>delims</name>
-	<required>true</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>begin</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>end</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>step</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>var</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>varStatus</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>otherwise</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.OtherwiseTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Subtag of &lt;choose&gt; that follows &lt;when&gt; tags
-	and runs only if all of the prior conditions evaluated to
-	'false'
-    </description>
-  </tag>
-
-  <tag>
-    <name>param</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Adds a parameter to a containing 'import' tag's URL.
-    </description>
-    <attribute>
-        <name>name</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>redirect</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.RedirectTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Redirects to a new URL.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>url</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>context</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>remove</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.RemoveTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-	Removes a scoped variable (from a particular scope, if specified).
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>set</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.SetTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Sets the result of an expression evaluation in a 'scope'
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>target</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>property</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>url</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.UrlTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Prints or exposes a URL with optional query parameters
-        (via the c:param tag).
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>context</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>when</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.core.WhenTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Subtag of &lt;choose&gt; that includes its body if its
-        condition evalutes to 'true'
-    </description>
-    <attribute>
-        <name>test</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-</taglib>
diff --git a/conf/fmt-rt.tld b/conf/fmt-rt.tld
deleted file mode 100644
index 45d1545..0000000
--- a/conf/fmt-rt.tld
+++ /dev/null
@@ -1,403 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>fmt_rt</short-name>
-  <uri>http://java.sun.com/jstl/fmt_rt</uri>
-  <display-name>JSTL fmt RT</display-name>
-  <description>JSTL 1.0 i18n-capable formatting library</description>
-
-  <validator>
-    <validator-class>
-        org.apache.taglibs.standard.tlv.JstlFmtTLV
-    </validator-class>
-    <description>
-        Provides core validation features for JSTL tags.
-    </description>
-  </validator>
-
-  <tag>
-    <name>requestEncoding</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.RequestEncodingTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Sets the request character encoding
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>setLocale</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.SetLocaleTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Stores the given locale in the locale configuration variable
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>variant</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>timeZone</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.TimeZoneTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Specifies the time zone for any time formatting or parsing actions
-        nested in its body
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>setTimeZone</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.SetTimeZoneTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Stores the given time zone in the time zone configuration variable
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>bundle</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.BundleTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Loads a resource bundle to be used by its tag body
-    </description>
-    <attribute>
-        <name>basename</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>prefix</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>setBundle</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.SetBundleTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Loads a resource bundle and stores it in the named scoped variable or
-        the bundle configuration variable
-    </description>
-    <attribute>
-        <name>basename</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>message</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.MessageTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Maps key to localized message and performs parametric replacement
-    </description>
-    <attribute>
-        <name>key</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>bundle</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>param</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Supplies an argument for parametric replacement to a containing
-        &lt;message&gt; tag
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>formatNumber</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.FormatNumberTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Formats a numeric value as a number, currency, or percentage
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>pattern</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>currencyCode</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>currencySymbol</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>groupingUsed</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>maxIntegerDigits</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>minIntegerDigits</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>maxFractionDigits</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>minFractionDigits</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>parseNumber</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.ParseNumberTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Parses the string representation of a number, currency, or percentage
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>pattern</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>parseLocale</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>integerOnly</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>formatDate</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.FormatDateTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Formats a date and/or time using the supplied styles and pattern
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dateStyle</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>timeStyle</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>pattern</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>timeZone</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>parseDate</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.fmt.ParseDateTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Parses the string representation of a date and/or time
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dateStyle</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>timeStyle</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>pattern</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>timeZone</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>parseLocale</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-</taglib>
diff --git a/conf/fmt.tld b/conf/fmt.tld
deleted file mode 100644
index 20523ee..0000000
--- a/conf/fmt.tld
+++ /dev/null
@@ -1,442 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>fmt</short-name>
-  <uri>http://java.sun.com/jstl/fmt</uri>
-  <display-name>JSTL fmt</display-name>
-  <description>JSTL 1.0 i18n-capable formatting library</description>
-
-  <validator>
-    <validator-class>
-	org.apache.taglibs.standard.tlv.JstlFmtTLV
-    </validator-class>
-    <init-param>
-	<param-name>expressionAttributes</param-name>
-	<param-value>
-            requestEncoding:value 
-	    setLocale:value
-	    setLocale:variant
-	    timeZone:value
-	    setTimeZone:value
-	    bundle:basename
-	    bundle:prefix
-            setBundle:basename
-	    message:key
-	    message:bundle
-	    param:value
-	    formatNumber:value
-	    formatNumber:pattern
-            formatNumber:currencyCode
-            formatNumber:currencySymbol
-            formatNumber:groupingUsed
-            formatNumber:maxIntegerDigits
-            formatNumber:minIntegerDigits
-            formatNumber:maxFractionDigits
-            formatNumber:minFractionDigits
-	    parseNumber:value
-	    parseNumber:pattern
-	    parseNumber:parseLocale
-            parseNumber:integerOnly
-	    formatDate:value
-	    formatDate:pattern
-	    formatDate:timeZone
-	    parseDate:value
-	    parseDate:pattern
-	    parseDate:timeZone
-	    parseDate:parseLocale
-	</param-value>
-	<description>
-	    Whitespace-separated list of colon-separated token pairs
-	    describing tag:attribute combinations that accept expressions.
-	    The validator uses this information to determine which
-	    attributes need their syntax validated.
-	</description>
-     </init-param>
-  </validator>
-
-  <tag>
-    <name>requestEncoding</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.RequestEncodingTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Sets the request character encoding
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>setLocale</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.SetLocaleTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Stores the given locale in the locale configuration variable
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>variant</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>timeZone</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.TimeZoneTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Specifies the time zone for any time formatting or parsing actions
-        nested in its body
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>setTimeZone</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.SetTimeZoneTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Stores the given time zone in the time zone configuration variable
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>bundle</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.BundleTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Loads a resource bundle to be used by its tag body
-    </description>
-    <attribute>
-        <name>basename</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>prefix</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>setBundle</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.SetBundleTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Loads a resource bundle and stores it in the named scoped variable or
-        the bundle configuration variable
-    </description>
-    <attribute>
-        <name>basename</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>message</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.MessageTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Maps key to localized message and performs parametric replacement
-    </description>
-    <attribute>
-        <name>key</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>bundle</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>param</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Supplies an argument for parametric replacement to a containing
-        &lt;message&gt; tag
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>formatNumber</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.FormatNumberTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Formats a numeric value as a number, currency, or percentage
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>pattern</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>currencyCode</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>currencySymbol</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>groupingUsed</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>maxIntegerDigits</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>minIntegerDigits</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>maxFractionDigits</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>minFractionDigits</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>parseNumber</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.ParseNumberTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Parses the string representation of a number, currency, or percentage
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>pattern</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>parseLocale</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>integerOnly</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>formatDate</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.FormatDateTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Formats a date and/or time using the supplied styles and pattern
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dateStyle</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>timeStyle</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>pattern</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>timeZone</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>parseDate</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.fmt.ParseDateTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Parses the string representation of a date and/or time
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dateStyle</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>timeStyle</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>pattern</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>timeZone</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>parseLocale</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-</taglib>
diff --git a/conf/permittedTaglibs.tld b/conf/permittedTaglibs.tld
deleted file mode 100644
index cb9aea4..0000000
--- a/conf/permittedTaglibs.tld
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-        "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>permittedTaglibs</short-name>
-  <uri>http://jakarta.apache.org/taglibs/standard/permittedTaglibs</uri>
-  <description>
-    Validates JSP pages to restrict 'taglib' directives
-  </description>
-
-  <validator>
-    <validator-class>
-	javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV
-    </validator-class>
-    <init-param>
-      <param-name>permittedTaglibs</param-name>
-      <param-value>
-	http://java.sun.com/jstl/core
-	http://java.sun.com/jstl/fmt
-	http://java.sun.com/jstl/sql
-	http://java.sun.com/jstl/xml
-      </param-value>
-      <description>
-        Whitespace-separated list of taglib URIs to permit.  This example
-	TLD for the Standard Taglib allows only JSTL 'el' taglibs to be
-	imported.
-      </description>
-    </init-param>
-  </validator>
-
-  <!-- Every TLD needs at least one 'tag' element.  We happily oblige. -->
-
-  <tag>
-    <name>noop</name>
-    <tag-class>javax.servlet.jsp.tagext.TagSupport</tag-class>
-    <body-content>empty</body-content>
-    <description>Does nothing.</description>
-  </tag>
-</taglib>
diff --git a/conf/scriptfree.tld b/conf/scriptfree.tld
deleted file mode 100644
index 393b1c6..0000000
--- a/conf/scriptfree.tld
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-        "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>scriptfree</short-name>
-  <uri>http://jakarta.apache.org/taglibs/standard/scriptfree</uri>
-  <description>
-    Validates JSP pages to prohibit use of scripting elements.
-  </description>
-
-  <validator>
-    <validator-class>
-	javax.servlet.jsp.jstl.tlv.ScriptFreeTLV
-    </validator-class>
-    <init-param>
-      <param-name>allowDeclarations</param-name>
-      <param-value>false</param-value>
-      <description>
-        Controls whether or not declarations are considered valid.
-      </description>
-    </init-param>
-    <init-param>
-      <param-name>allowScriptlets</param-name>
-      <param-value>false</param-value>
-      <description>
-        Controls whether or not scriptlets are considered valid.
-      </description>
-    </init-param>
-    <init-param>
-      <param-name>allowExpressions</param-name>
-      <param-value>false</param-value>
-      <description>
-        Controls whether or not top-level expressions are considered valid.
-      </description>
-    </init-param>
-    <init-param>
-      <param-name>allowRTExpressions</param-name>
-      <param-value>false</param-value>
-      <description>
-        Controls whether or not expressions used to supply request-time
-        attribute values are considered valid.
-      </description>
-    </init-param>
-    <description>
-      Validates prohibitions against scripting elements.
-    </description>
-  </validator>
-
-  <!-- Every TLD needs at least one 'tag' element.  We happily oblige. -->
-
-  <tag>
-    <name>noop</name>
-    <tag-class>javax.servlet.jsp.tagext.TagSupport</tag-class>
-    <body-content>empty</body-content>
-    <description>Does nothing.</description>
-  </tag>
-</taglib>
diff --git a/conf/sql-rt.tld b/conf/sql-rt.tld
deleted file mode 100644
index a6c3265..0000000
--- a/conf/sql-rt.tld
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>sql_rt</short-name>
-  <uri>http://java.sun.com/jstl/sql_rt</uri>
-  <display-name>JSTL sql RT</display-name>
-  <description>JSTL 1.0 sql library</description>
-
-  <validator>
-    <validator-class>
-        org.apache.taglibs.standard.tlv.JstlSqlTLV
-    </validator-class>
-    <description>
-        Provides core validation features for JSTL tags.
-    </description>
-  </validator>
-
-  <tag>
-    <name>transaction</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.sql.TransactionTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Provides nested database action elements with a shared Connection,
-        set up to execute all statements as one transaction.
-    </description>
-    <attribute>
-        <name>dataSource</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>isolation</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>query</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.sql.QueryTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Executes the SQL query defined in its body or through the
-        sql attribute.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>sql</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dataSource</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>startRow</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>maxRows</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>update</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.sql.UpdateTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Executes the SQL update defined in its body or through the
-        sql attribute.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>sql</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dataSource</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>param</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.sql.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Sets a parameter in an SQL statement to the specified value.
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>dateParam</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.sql.DateParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Sets a parameter in an SQL statement to the specified java.util.Date value.
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>setDataSource</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.sql.SetDataSourceTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Creates a simple DataSource suitable only for prototyping.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dataSource</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>driver</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>url</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>user</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>password</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-</taglib>
diff --git a/conf/sql.tld b/conf/sql.tld
deleted file mode 100644
index 8a2b625..0000000
--- a/conf/sql.tld
+++ /dev/null
@@ -1,213 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>sql</short-name>
-  <uri>http://java.sun.com/jstl/sql</uri>
-  <display-name>JSTL sql</display-name>
-  <description>JSTL 1.0 sql library</description>
-
-  <validator>
-    <validator-class>
-	org.apache.taglibs.standard.tlv.JstlSqlTLV
-    </validator-class>
-    <init-param>
-        <param-name>expressionAttributes</param-name>
-        <param-value>
-        transaction:dataSource
-        transaction:isolation
-        query:sql
-        query:dataSource
-        query:startRow
-        query:maxRows
-        update:sql
-        update:dataSource
-        param:value
-        dateParam:value
-        dateParam:type
-        setDataSource:dataSource
-        setDataSource:driver
-        setDataSource:url
-        setDataSource:user
-        setDataSource:password
-        </param-value>
-        <description>
-            Whitespace-separated list of colon-separated token pairs
-            describing tag:attribute combinations that accept expressions.
-            The validator uses this information to determine which
-            attributes need their syntax validated.
-        </description>
-     </init-param>
-  </validator>
-
-  <tag>
-    <name>transaction</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.sql.TransactionTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Provides nested database action elements with a shared Connection,
-        set up to execute all statements as one transaction.
-    </description>
-    <attribute>
-        <name>dataSource</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>isolation</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>query</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.sql.QueryTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Executes the SQL query defined in its body or through the
-        sql attribute.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>sql</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dataSource</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>startRow</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>maxRows</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>update</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.sql.UpdateTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Executes the SQL update defined in its body or through the
-        sql attribute.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>sql</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dataSource</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>param</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.sql.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Sets a parameter in an SQL statement to the specified value.
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>dateParam</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.sql.DateParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Sets a parameter in an SQL statement to the specified java.util.Date val
-ue.
-    </description>
-    <attribute>
-        <name>value</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>type</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>setDataSource</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.sql.SetDataSourceTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-        Creates a simple DataSource suitable only for prototyping.
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>dataSource</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>driver</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>url</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>user</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>password</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-</taglib>
diff --git a/conf/x-rt.tld b/conf/x-rt.tld
deleted file mode 100644
index e7062b7..0000000
--- a/conf/x-rt.tld
+++ /dev/null
@@ -1,256 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>x_rt</short-name>
-  <uri>http://java.sun.com/jstl/xml_rt</uri>
-  <display-name>JSTL XML RT</display-name>
-  <description>JSTL 1.0 XML library</description>
-
-  <validator>
-    <validator-class>
-	org.apache.taglibs.standard.tlv.JstlXmlTLV
-    </validator-class>
-    <description>
-        Provides validation features for JSTL XML tags.
-    </description>
-  </validator>
-
-  <tag>
-    <name>choose</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.ChooseTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Simple conditional tag that establishes a context for
-        mutually exclusive conditional operations, marked by
-        &lt;when&gt; and &lt;otherwise&gt;
-    </description>
-  </tag>
-
-  <tag>
-    <name>out</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.xml.ExprTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-	Like &lt;%= ... &gt;, but for XPath expressions.
-    </description>
-    <attribute>
-        <name>select</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>escapeXml</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>if</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.IfTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        XML conditional tag, which evalutes its body if the
-        supplied XPath expression evalutes to 'true' as a boolean
-    </description>
-    <attribute>
-        <name>select</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>forEach</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.ForEachTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	XML iteration tag.
-    </description>
-    <attribute>
-	<name>var</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>select</name>
-	<required>true</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>otherwise</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.OtherwiseTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Subtag of &lt;choose&gt; that follows &lt;when&gt; tags
-	and runs only if all of the prior conditions evaluated to
-	'false'
-    </description>
-  </tag>
-
-  <tag>
-    <name>param</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.xml.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Adds a parameter to a containing 'transform' tag's Transformer
-    </description>
-    <attribute>
-        <name>name</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>parse</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.xml.ParseTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.XmlParseTEI</tei-class>
-    <body-content>JSP</body-content>
-    <description>
-	Parses XML content from 'source' attribute or 'body'
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>varDom</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scopeDom</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>xml</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>systemId</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>filter</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>set</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.SetTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-	Saves the result of an XPath expression evaluation in a 'scope'
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>select</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>transform</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.xml.TransformTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.XmlTransformTEI</tei-class>
-    <body-content>JSP</body-content>
-    <description>
-	Conducts a transformation given a source XML document
-	and an XSLT stylesheet
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>result</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>xml</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>xmlSystemId</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>xslt</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>xsltSystemId</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>when</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.WhenTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Subtag of &lt;choose&gt; that includes its body if its
-        expression evalutes to 'true'
-    </description>
-    <attribute>
-        <name>select</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-</taglib>
diff --git a/conf/x.tld b/conf/x.tld
deleted file mode 100644
index 2237ccb..0000000
--- a/conf/x.tld
+++ /dev/null
@@ -1,273 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE taglib
-  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
-  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>1.0</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>x</short-name>
-  <uri>http://java.sun.com/jstl/xml</uri>
-  <display-name>JSTL XML</display-name>
-  <description>JSTL 1.0 XML library</description>
-
-  <validator>
-    <validator-class>
-	org.apache.taglibs.standard.tlv.JstlXmlTLV
-    </validator-class>
-    <init-param>
-	<param-name>expressionAttributes</param-name>
-	<param-value>
-	    out:escapeXml
-	    parse:xml
-	    parse:systemId
-	    parse:filter
-	    transform:xml
-	    transform:xmlSystemId
-	    transform:xslt
-	    transform:xsltSystemId
-	    transform:result
-	</param-value>
-	<description>
-	    Whitespace-separated list of colon-separated token pairs
-	    describing tag:attribute combinations that accept expressions.
-	    The validator uses this information to determine which
-	    attributes need their syntax validated.
-	</description>
-     </init-param>
-  </validator>
-
-  <tag>
-    <name>choose</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.ChooseTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Simple conditional tag that establishes a context for
-        mutually exclusive conditional operations, marked by
-        &lt;when&gt; and &lt;otherwise&gt;
-    </description>
-  </tag>
-
-  <tag>
-    <name>out</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.xml.ExprTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-	Like &lt;%= ... &gt;, but for XPath expressions.
-    </description>
-    <attribute>
-        <name>select</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>escapeXml</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>if</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.IfTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-      XML conditional tag, which evalutes its body if the
-      supplied XPath expression evalutes to 'true' as a boolean
-    </description>
-    <attribute>
-        <name>select</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>forEach</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.ForEachTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	XML iteration tag.
-    </description>
-    <attribute>
-	<name>var</name>
-	<required>false</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>select</name>
-	<required>true</required>
-	<rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>otherwise</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.OtherwiseTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-	Subtag of &lt;choose&gt; that follows &lt;when&gt; tags
-	and runs only if all of the prior conditions evaluated to
-	'false'
-    </description>
-  </tag>
-
-  <tag>
-    <name>param</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.xml.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Adds a parameter to a containing 'transform' tag's Transformer
-    </description>
-    <attribute>
-        <name>name</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>parse</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.xml.ParseTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.XmlParseTEI</tei-class>
-    <body-content>JSP</body-content>
-    <description>
-	Parses XML content from 'source' attribute or 'body'
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>varDom</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scopeDom</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>xml</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>systemId</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>filter</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>set</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.SetTag</tag-class>
-    <body-content>empty</body-content>
-    <description>
-	Saves the result of an XPath expression evaluation in a 'scope'
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>select</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>transform</name>
-    <tag-class>org.apache.taglibs.standard.tag.el.xml.TransformTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.XmlTransformTEI</tei-class>
-    <body-content>JSP</body-content>
-    <description>
-	Conducts a transformation given a source XML document
-	and an XSLT stylesheet
-    </description>
-    <attribute>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>result</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>xml</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <name>xmlSystemId</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>xslt</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-	<name>xsltSystemId</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <name>when</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.WhenTag</tag-class>
-    <body-content>JSP</body-content>
-    <description>
-        Subtag of &lt;choose&gt; that includes its body if its
-        expression evalutes to 'true'
-    </description>
-    <attribute>
-        <name>select</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-</taglib>
diff --git a/doc/conf/web.xml b/doc/conf/web.xml
deleted file mode 100644
index b35f9dc..0000000
--- a/doc/conf/web.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!DOCTYPE web-app
-    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
-    "http://java.sun.com/dtd/web-app_2_3.dtd">
-
-<web-app>
-
-  <description>
-  Documentation for the 'standard' tag library (JSTL EA3)
-  </description>
-
-</web-app>
diff --git a/doc/web/Conditionals_FunctionalDescription_1_EA1.html b/doc/web/Conditionals_FunctionalDescription_1_EA1.html
deleted file mode 100644
index 80a31fd..0000000
--- a/doc/web/Conditionals_FunctionalDescription_1_EA1.html
+++ /dev/null
@@ -1,152 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>JSTL: Conditional Tags -- Functional Description</title>
-<style media="screen" type="text/css"><!--
-.fixme { color: red }
---></style>
-</head>
-<body bgcolor="#FFFFFF">
-<h3>
-
-  <hr width="100%" noshade>
-</h3>
-
-<h2> Conditional Tags &#151; Functional Description</h2>
-
-<h2> <tt>&lt;if></tt><br>
-  <tt>&lt;choose> &lt;when> &lt;otherwise>&nbsp;</tt></h2>
-<hr WIDTH="100%" noshade>
-<h3>
-1. Introduction</h3>
-The set of JSTL conditional tags are designed to support the two most
-common usage patterns associated with conditional processing: <i>simple</i>
-conditional execution and <i>mutually exclusive</i> conditional execution.
-The JSTL conditional tags are similar to the XSLT instructions for conditional
-processing (<tt>&lt;xsl:if></tt> and <tt>&lt;xsl:choose></tt>).
-<p>A simple conditional execution tag evaluates its body content only if
-the test condition associated with it is true. In the following example,
-a special greeting is displayed only if this is a customer's first visit
-to the site.
-<p><tt>&nbsp; &lt;c:if test="$user.visitCount == 1"></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp; This is your first visit. Welcome to the
-site!</tt>
-<br>
-  <tt>&nbsp; &lt;/c:if></tt> 
-<p>With mutually exclusive conditional execution, only one among a number
-of possible alternative tags gets its body content evaluated. In the example
-below, the information displayed for a specific product depends on the
-verbosity level selected.
-<p><tt>&nbsp; &lt;choose></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;when test="$verbosityLevel == 'short'"></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:expr value=&quot;$product.shortDescription&quot;/&gt;</tt> 
-  <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;/when></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;when test="$verbosityLevel == 'medium'"></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:expr value=&quot;$product.mediumDescription&quot;/&gt;</tt> 
-  <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;/when></tt><br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;otherwise></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:expr value=&quot;$product.longDescription&quot;/&gt;</tt> 
-  <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;/otherwise></tt> <br>
-  <tt>&nbsp; &lt;/choose></tt> 
-<h3>
-2. <tt>&lt;if></tt></h3>
-The <tt>&lt;if></tt> tag evaluates its body only if the test condition
-returns true.
-<br>&nbsp;
-<table BORDER CELLSPACING=2 CELLPADDING=5 WIDTH="709" >
-  <tr BGCOLOR="#FFFACD"> 
-    <th ALIGN=LEFT COLSPAN="4">Attributes</th>
-  </tr>
-  <tr> 
-    <td><tt>test</tt></td>
-    <td>required</td>
-    <td>expr</td>
-    <td>The test condition to be evaluated. The value returned by the attribute 
-      must either be a <tt>boolean</tt> primitive or a <tt>Boolean</tt> object 
-      (EL library). Must be a Boolean object in the RT library.</td>
-  </tr>
-  <tr> 
-    <td><tt>var</tt></td>
-    <td>optional</td>
-    <td>string</td>
-    <td>Name of the page scope attribute used to store the current result of the 
-      test condition. Visibility is &quot;at_end&quot;.</td>
-  </tr>
-</table>
-
-<h3>
-3. <tt>&lt;choose></tt></h3>
-The <tt>&lt;choose></tt> tag performs conditional block execution embedded
-by the <tt>&lt;when></tt> sub tags. It renders the body of the first <tt>&lt;when></tt>
-tag whose test condition evaluates to true. If none of the test conditions
-of nested <tt>&lt;when></tt> tags evaluate to true, then the body of an
-<tt>&lt;otherwise></tt>
-tag is evaluated, if present.
-<p>The <tt>&lt;choose></tt> tag has no attributes.
-<h3>
-4. <tt>&lt;when></tt></h3>
-The <tt>&lt;when></tt> tag is used within a <tt>&lt;choose></tt> tag. The
-<tt>&lt;choose></tt>
-tag renders the body of the first <tt>&lt;when></tt> tag whose test condition
-evaluates to true. The immediate parent of a <tt>&lt;when></tt> tag must
-be a <tt>&lt;choose></tt> tag, otherwise an exception will be thrown.
-<br>&nbsp;
-<table BORDER CELLSPACING=2 CELLPADDING=5 WIDTH="709" >
-<tr BGCOLOR="#FFFACD">
-<th ALIGN=LEFT COLSPAN="4">Attributes</th>
-</tr>
-
-<tr>
-<td><tt>test</tt></td>
-
-<td>required</td>
-
-<td>expr</td>
-
-    <td>The test condition to be evaluated. The value returned by the attribute 
-      must either be a <tt>boolean</tt> primitive or a <tt>Boolean</tt> object 
-      (EL library). Must be a Boolean object in the RT library. </td>
-</tr>
-</table>
-
-<h3>
-5. <tt>&lt;otherwise></tt></h3>
-The <tt>&lt;otherwise></tt> tag is used as the last subtag within a <tt>&lt;choose></tt>
-tag. The <tt>&lt;choose></tt> tag renders the body of the <tt>&lt;otherwise></tt>
-tag if none of the preceding <tt>&lt;when></tt> tags test conditions evaluated
-to true. The immediate parent of an <tt>&lt;otherwise></tt> tag must be
-a <tt>&lt;choose></tt> tag otherwise an exception will be thrown.
-<p>This tag has no attributes. 
-<h3> 6. Custom logic tags</h3>
-It is important to note that <tt>&lt;if></tt> and <tt>&lt;when></tt> tags
-have different semantics. These semantic differences are enforced by the
-fact that only <tt>&lt;when></tt> tags can be used within the context of
-a mutually exclusive conditional execution (<tt>&lt;choose></tt> tag).
-<p>This clean separation of behavior also impacts the way custom logic
-tags (i.e. tags who render their bodies depending on the result of a test
-condition) should be developed. Ideally, the result associated with the
-evaluation of custom logic tag should be usable both in the context of
-a simple conditional execution, as well as in a mutually exclusive conditional
-execution.
-<p>The proper way to support this is by simply having a custom logic tag
-export a boolean scripting variable. This boolean scripting variable can
-then be used as the test condition of a <tt>&lt;when></tt> subtag. For
-example:
-<p><tt>&nbsp; &lt;paramExists name="hotel" var="needsHotel"/></tt> <br>
-  <tt>&nbsp; &lt;choose></tt>
-<br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;when test="$needsHotel"></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/when></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;otherwise></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/otherwise></tt>
-<br><tt>&nbsp; &lt;/choose></tt>
-<br>
-  &nbsp; 
-</body>
-</html>
diff --git a/doc/web/DB_FunctionalDescription_1_EA3.html b/doc/web/DB_FunctionalDescription_1_EA3.html
deleted file mode 100644
index 2980209..0000000
--- a/doc/web/DB_FunctionalDescription_1_EA3.html
+++ /dev/null
@@ -1,645 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Database Tags -- Functional Description</title>
-<style media="screen" type="text/css"><!--
-.fixme { color: red }
---></style>
-</head>
-<body bgcolor="#FFFFFF">
-<h3> 
-  <hr width="100%" noshade>
-</h3>
-<h2> SQL Actions &#151; Functional Description <br>
-</h2>
-<h2><tt>&lt;sql:query&gt;<br>
-  &lt;sql:update&gt;<br>
-  &lt;sql:transaction&gt;<br>
-  &lt;sql:param&gt;<br>
-  &lt;sql:driver&gt;<br>
-  </tt></h2>
-<h2><tt>interface SQLExecutionTag<br>
-  interface Result<br>
-  interface Row<br>
-  interface ResultMetaData<br>
-  interface ColumnMetaData<br>
-  interface Column</tt><tt><br>
-  </tt></h2>
-<hr width="100%" noshade>
-<h3>1. Introduction</h3>
-<p>Many dynamic web applications need to access relational databases for the dynamic 
-  aspects of their presentation layer. While it can be argued that database operations 
-  should be handled in the business logic of a web application designed with an 
-  MVC architecture, the fact of the matter is that real world applications will 
-  sometimes require this capability within the JSP pages for various reasons (e.g. 
-  prototyping/testing, small scale/simple applications, lack of developer resources, 
-  etc).</p>
-<p>With JSTL, we do not want to force a unique way to design web applications. 
-  Our goal is to provide the right set of common tools needed by page authors 
-  to be successful in their projects. A set of database tags has been clearly 
-  identified as one of these required common tools</p>
-<hr width="100%" noshade>
-<h3>2. Overview<br>
-</h3>
-<p>The JSTL database actions allow a page author to </p>
-<ul>
-  <li>perform database queries (select)</li>
-  <li>easily access query results</li>
-  <li>perform database updates (insert, update, delete)</li>
-  <li>group database operations within transactions</li>
-</ul>
-<p><b>DataSource</b></p>
-<p>Database actions operate on a DataSource. A DataSource is an object associated 
-  with the database to be accessed. It provides a factory for Connection objects. 
-  With the JSTL database tagset, a DataSource can be specified either as a javax.sql.DataSource 
-  object, or as a path to a JNDI resource (in containers that support it; i.e. 
-  J2EE containers, or others that support this specific mechanism for referencing 
-  resources.)</p>
-<p>There are many ways by which a page author can get access to a DataSource, 
-  namely: </p>
-<blockquote> 
-  <p>1. Transparent collaboration (implicit scoped attribute)</p>
-  <p>Initialization code in the application logic (e.g. application event listener, 
-    initialization servlet) can be used to set the default DataSource associated 
-    with a web application via the scoped attribute &quot;javax.servlet.jsp.jstl.sql.dataSource&quot;. 
-    With this approach, an application with a single database makes the DataSource 
-    that is being used by the database actions totally transparent to the page 
-    author</p>
-  <p>2. Explicit collaboration via application logic</p>
-  <p>The controller code in an MVC-based application sets a JSP scoped attribute 
-    representing the DataSource. The attribute's name and scope are communicated 
-    to the page author who uses that information in the &quot;dataSource&quot; 
-    attribute of the database actions. For example:</p>
-  <blockquote> 
-    <p><code>&lt;sql:query dataSource=&quot;$dataSource&quot; ...&gt;</code></p>
-  </blockquote>
-  <p>3. Explicit collaboration via &lt;sql:driver&gt; action</p>
-  <p>If a DataSource cannot be set within the application logic (prototype/simple 
-    project with no developer at hand), the &lt;sql:driver&gt; action can be used 
-    as a simplified alternative for the creation of a DataSource object wrapped 
-    around a JDBC driver. For example:</p>
-  <blockquote> 
-    <p><code>&lt;sql:driver var=&quot;dataSource&quot; <br>
-      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
-      driver=&quot;org.gjt.mm.mysql.Driver&quot; <br>
-      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
-      &nbsp;url=&quot;//localHost/myDB&quot;&gt;</code><br>
-      <code>&lt;sql:query dataSource=&quot;$dataSource&quot; .../&gt;</code> 
-    </p>
-  </blockquote>
-</blockquote>
-<p><b>Querying a database</b></p>
-<p>The most common usage of the database actions is to query a database and display 
-  the results. In the example below, customers from China are selected from the 
-  &quot;customers&quot; table of the database, they are ordered by last name, 
-  and finally displayed in an HTML table.</p>
-<blockquote> 
-  <p><code>&lt;sql:query var=&quot;customers&quot; dataSource=&quot;$dataSource&quot;<i>&gt;<br>
-    </i>&nbsp;&nbsp; SELECT * FROM customers<br>
-    &nbsp; &nbsp;WHERE country = 'China'<br>
-    &nbsp;&nbsp;&nbsp;ORDER BY lastname<br>
-    &lt;/sql:query&gt;<i> </i></code></p>
-</blockquote>
-<blockquote> 
-  <p><code><font color="#666666">&lt;table&gt;</font><i><br>
-    </i>&lt;jc:forEach var=&quot;row&quot; items=&quot;$customers.rows&quot;&gt;<br>
-    &nbsp;&nbsp;<font color="#666666">&lt;tr&gt; </font><br>
-    &nbsp;&nbsp;&nbsp;&nbsp;<font color="#666666">&lt;td&gt;</font>&lt;jc:expr 
-    value=&quot;$row.lastName&quot;/&gt;<font color="#666666">&lt;/td&gt;</font><br>
-    &nbsp;&nbsp;&nbsp;&nbsp;<font color="#666666">&lt;td&gt;</font>&lt;jc:expr 
-    value=&quot;$row.firstName&quot;/&gt;<font color="#666666">&lt;/td&gt;</font><br>
-    &nbsp;&nbsp;&nbsp;&nbsp;<font color="#666666">&lt;td&gt;</font>&lt;jc:expr 
-    value=&quot;$row.address&quot;/&gt;<font color="#666666">&lt;/td&gt;</font> 
-    <br>
-    &nbsp;&nbsp;<font color="#666666">&lt;/tr&gt; </font><br>
-    &lt;/jc:forEach&gt;<br>
-    <font color="#666666">&lt;/table&gt;</font> </code></p>
-</blockquote>
-<p><b>Updating a database</b></p>
-<p>It is possible to update a database via the &lt;sql:update&gt; action. Updates 
-  to the database can be grouped within a &lt;sql:transaction&gt; action to ensure 
-  database integrity. For example, the following code transfers money between 
-  two accounts.</p>
-<blockquote> 
-  <p><code>&lt;sql:transaction dataSource=&quot;$dataSource&quot;&gt;<br>
-    &nbsp;&nbsp;&lt;sql:update&gt; <br>
-    &nbsp;&nbsp;&nbsp; UPDATE account <br>
-    &nbsp;&nbsp;&nbsp;&nbsp;SET Balance = Balance - ?<br>
-    &nbsp; &nbsp;&nbsp;WHERE accountNo = ?<br>
-    </code><code>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sql:param value=&quot;$transferAmount&quot;&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;sql:param value=&quot;$accountFrom&quot;&gt;<br>
-    &nbsp;&nbsp;&lt;/sql:update&gt;<br>
-    &nbsp;&nbsp;&lt;sql:update&gt; <br>
-    &nbsp;&nbsp;&nbsp; UPDATE account <br>
-    &nbsp;&nbsp;&nbsp;&nbsp;SET Balance = Balance + ?<br>
-    &nbsp; &nbsp;&nbsp;WHERE accountNo = ?<br>
-    </code><code>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sql:param value=&quot;$transferAmount&quot;&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;sql:param value=&quot;$accountTo&quot;&gt;<br>
-    &nbsp;&nbsp;&lt;/sql:update&gt;<br>
-    &lt;/sql:transaction&gt; </code></p>
-</blockquote>
-<p><b>SQL Statement Parameters</b></p>
-<p>The JSTL database tagset also supports SQL statements that take parameters 
-  to supply values to be used in place of question mark placeholders (as seen 
-  in example above). This support is extensible via interface SQLExecutionTag 
-  so that custom &quot;parameter&quot; tags can be developed to easily set the 
-  value of statement parameters from any kind of input data.</p>
-<hr width="100%" noshade>
-<h3>3. Actions</h3>
-<h3>3.1 &lt;sql:query&gt;</h3>
-<h4>Synopsis</h4>
-<p>&lt;sql:query&gt; is the general purpose action for performing SQL queries 
-  on a database and gettting back a single result set containing rows of data.</p>
-<p>This action may or not have a body. If the action has no body, it is of the 
-  form:</p>
-<blockquote> 
-  <p><code>&lt;sql:query var=<i>&quot;varName&quot;</i> sql=&quot;<i>sqlQuery</i>&quot; 
-    [dataSource=<i>dataSourceSpec</i>]<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[maxRows=&quot;<i>maxRows</i>&quot;] 
-    [startRow=&quot;<i>startRow</i>&quot;] </code><code>/&gt;</code></p>
-  </blockquote>
-<p>If the action has a body, it is of the form:</p>
-<blockquote> 
-  <p><code>&lt;sql:query var=<i>&quot;varName&quot;</i> [sql=&quot;<i>sqlQuery</i>&quot;] 
-    [dataSource=<i>dataSourceSpec</i>]&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[maxRows=&quot;<i>maxRows</i>&quot;] 
-    [startRow=&quot;<i>startRow</i>&quot;</code><code>]&gt;<br>
-    </code><code>&nbsp;&nbsp;... optional query statement ...<br>
-    </code><code>&nbsp;&nbsp;... optional &lt;sql:param&gt; actions ...<br>
-    &lt;/sql:query&gt;</code></p>
-  <p>In the &quot;body&quot; form, the SQL query statement can be specified either 
-    via attribute &quot;sql&quot; or within the tag's body.</p>
-  </blockquote>
-<p><code>dataSourceSpec ::= javax.sql.DataSource object | &quot;jndiPathToDataSource&quot;</code><br>
-</p>
-<h4>Details</h4>
-<p>The results of the query are exposed via an object that implements the Result 
-  interface (see section 4.1) in the attribute named by &quot;var&quot;.</p>
-<p>For example:</p>
-<blockquote>
-  <p><code>&lt;sql:query var=&quot;customers&quot; dataSource=&quot;$dataSource&quot;<i>&gt;<br>
-    </i>&nbsp;&nbsp; SELECT * FROM employees<br>
-    &nbsp; &nbsp;WHERE country = 'China'<br>
-    &nbsp;&nbsp;&nbsp;ORDER BY lastname<br>
-    &lt;/sql:query&gt;<i> </i></code></p>
-</blockquote>
-<p>If the query produces no results, then an <i>empty</i> (i.e. size is 0) Result 
-  object is returned.</p>
-<p>The SQL query statement can be specified either via attribute &quot;sql&quot; 
-  or within the tag's body (mutually exclusive). Optional parameter markers (?) 
-  can be specified in the query statement as supported by JDBC. The values of 
-  these parameters are set via subtag &lt;sql:param&gt;. &lt;sql:query&gt; implements 
-  interface SQLExecutionTag (see section 4.2) to make this extensible to custom 
-  tags. </p>
-<p>The set of rows stored within the Result data structure can be limited by attribute 
-  &quot;maxRows&quot;. If unspecified, all rows resulting from the query are stored. 
-  Attribute &quot;startRow&quot; can be used to specify the starting row for the 
-  results. For example, if set at 10, this means that the first 9 rows will be 
-  skipped before the rows returned by the query are stored in the Result data 
-  structure (up to maxRows if applicable).</p>
-<p>These two attributes protect against &quot;runaway queries&quot;, allow efficient 
-  access to the top rows of large result sets, and also provide a poor-man's way 
-  of paging through a large set of results by bumping the startRow up by maxRows 
-  on each page.<br>
-  <br>
-  It is also possible to configure a default &quot;maxRows&quot; value that applies 
-  by default to all &lt;sql:query&gt; actions. This is done via context parameter 
-  &quot;javax.servlet.jsp.jstl.sql.maxRows&quot;. This global value for maxRows 
-  can be turned off by giving the maxRows attribute of an &lt;sql:query&gt; action 
-  the value -1.</p>
-<p>The tag retrieves and releases a Connection using the following algorithm: 
-</p>
-<ol>
-  <li>If the optional &quot;dataSource&quot; attribute is provided, then a connection 
-    is retrieved through getConnection() against this DataSource, and released 
-    by the tag handler before the tag completes its processing (result set is 
-    cached in the Result object). If the 'dataSource' attribute's value resolves 
-    to a String, after rtexpr/EL evaluation, this String is used as a JNDI path 
-    to a DataSource in containers that support it (i.e., J2EE containers, or others 
-    that support this specific mechanism for referencing resources.)</li>
-  <li>If &quot;dataSource&quot; is not present, but we are the child tag of a 
-    &lt;sql:transaction&gt; tag, retrieve a Connection from our parent and do 
-    nothing to release it. The connection is managed by the parent.</li>
-  <li>If neither (1) nor (2), then look for a DataSource named by scoped attribute 
-    &quot;javax.servlet.jsp.jstl.sql.dataSource&quot;. Handling of the connection 
-    is then as described in 1.</li>
-</ol>
-<p>It is illegal for &lt;sql:query&gt; to specify a DataSource when nested within 
-  &lt;sql:transaction&gt; (throws JspTagException).</p>
-<h3>3.2 &lt;sql:update&gt;</h3>
-<h4>Synopsis</h4>
-<p>&lt;sql:update&gt; executes an SQL INSERT, UPDATE or DELETE statement. In addition, 
-  SQL statements that return nothing, such as SQL DDL statements, can be executed.</p>
-<p>This action may or not have a body. If the action has no body, it is of the 
-  form:</p>
-<blockquote> 
-  <p><code>&lt;sql:update sql=&quot;<i>sqlUpdate</i>&quot; <br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [var=<i>&quot;varName&quot;</i>] 
-    <br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [dataSource=<i>dataSourceSpec</i>]/&gt;</code></p>
-</blockquote>
-<p>If the action has a body, it is of the form:</p>
-<blockquote> 
-  <p><code>&lt;sql:update [sql=&quot;<i>sqlUpdate</i>&quot;] <br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[var=<i>&quot;varName&quot;]</i></code><code><br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[dataSource=<i>dataSourceSpec</i>]&gt;<br>
-    &nbsp;&nbsp;... optional update statement ...<br>
-    &nbsp;&nbsp;... optional &lt;sql:param&gt; actions ...<br>
-    &lt;/sql:query&gt;</code></p>
-  <p>The SQL update statement can be specified either via attribute &quot;sql&quot; 
-    or within the tag's body.</p>
-</blockquote>
-<p><code>dataSourceSpec ::= javax.sql.DataSource object | <br>
-  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
-  &quot;<i>jndiPathToDataSource</i>&quot;</code><br>
-</p>
-<h4>Details</h4>
-<p>The result of the database update is optionally exposed in the attribute named 
-  by &quot;var&quot;. This result is a java.lang.Integer object that tells how 
-  many rows were affected by the statement. The value 0 is returned if no rows 
-  were affected by INSERT, DELETE, or UPDATE, as well as for DDL statements that 
-  return nothing (e.g. CREATE TABLE). This is the same behavior as Statement.executeUpdate() 
-  in JDBC.</p>
-<p>For example:
-<blockquote>
-  <p><code>&lt;sql:update&gt;<br>
-    &nbsp;&nbsp; UPDATE account <br>
-    &nbsp;&nbsp;&nbsp;SET BALANCE = ?<br>
-    &nbsp; &nbsp;WHERE accountNo = ?<br>
-    </code><code>&nbsp;&nbsp;&lt;sql:param value=&quot;$balance&quot;&gt;<br>
-    &nbsp;&nbsp;&lt;sql:param value=&quot;$accountNo&quot;&gt;<br>
-    &lt;/sql:update&gt;</code></p>
-  </blockquote>
-<p>The tag acts identically to &lt;sql:query&gt; with respect to connection management, 
-  the &quot;sql&quot; and &quot;dataSource&quot; attributes, PreparedStatement 
-  lifecycle, etc.</p>
-<h3>3.3 &lt;sql:transaction&gt;</h3>
-<h4>Synopsis</h4>
-<p>&lt;sql:transaction&gt; serves to establish a transaction context for its &lt;sql:query&gt; 
-  and &lt;sql:update&gt; subtags. </p>
-<p><code>&lt;sql:transaction [dataSource=<i>dataSourceSpec</i>] <br>
-  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
-  [transactionIsolation=<i>&quot;transactionIsolationLevel&quot;</i>]&gt;<br>
-  &nbsp;&nbsp;&nbsp;... &lt;sql:query&gt; and &lt;sql:update&gt; statements ...<br>
-  &lt;/sql:transaction&gt; </code></p>
-<p><code>dataSourceSpec ::= javax.sql.DataSource object | &quot;jndiPathToDataSource&quot;<br>
-  transactionIsolationLevel ::= &quot;none&quot; | &quot;read_committed&quot; 
-  | &quot;read_uncommitted&quot; | <br>
-  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;repeatable_read&quot; 
-  | &quot;serializable&quot;</code><br>
-</p>
-<p>The transaction isolation levels are the same as the ones supported in JDBC 
-  by java.sql.Connection.<br>
-</p>
-<h4>Details</h4>
-Behavior is defined as follows: 
-<ul>
-  <li>in doStartTag(), call Connection.getTransactionIsolation(). 
-    <ul>
-      <li>If this equals TRANSACTION_NONE 
-        <ul>
-          <li>fail by throwing an exception.</li>
-        </ul>
-      </li>
-      <li>If this does not equal TRANSACTION_NONE 
-        <ul>
-          <li>call Connection.setAutoCommit(false).</li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-  <li>If the &quot;transactionIsolation&quot; attribute is specified 
-    <ul>
-      <li>save current transaction isolation level and set the specified one for 
-        the connection.</li>
-    </ul>
-  </li>
-  <li>in doEndTag(), call Connection.commit()</li>
-  <li>in doCatch(), call Connection.rollback()</li>
-  <li>in doFinally() 
-    <ul>
-      <li>restore the transaction isolation level via Connection.setTransactionIsolation(), 
-        if one was saved </li>
-      <li>reset auto commit: Connection.setAutoCommit(true)</li>
-      <li>close the connection</li>
-    </ul>
-  </li>
-</ul>
-<p>Throughout the transaction, any SQLException that occurs is simply propagated.</p>
-<p>The same connection-management scheme as &lt;sql:query&gt; is used to acquire 
-  a Connection, except that the parent isn't checked for DataSource (&lt;sql:transaction&gt; 
-  tags cannot be nested as a means of propagating a Connection). It is iIllegal 
-  for nested &lt;sql:query&gt; and &lt;sql:update&gt; subtags to specify a DataSource.</p>
-<p>The behavior of the &lt;sql:transaction&gt; action is undefined if it executes 
-  in the context of a larger JTA user transaction.</p>
-<h3>3.4 &lt;sql:driver&gt;</h3>
-<h4>Synopsis</h4>
-<p>&lt;sql:driver&gt; facilitates the wrapping of a DataSource object around a 
-  JDBC driver for prototype/simple applications.</p>
-<p><code>&lt;sql:driver var=<i>&quot;varName&quot;</i><br>
-  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[driver=&quot;<i>driverClassName</i>&quot;] 
-  <br>
-  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[url=&quot;<i>url</i>&quot;]<br>
-  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[user=&quot;<i>user</i>&quot;] 
-  /&gt;</code></p>
-<h4>Details<br>
-</h4>
-<p>The &lt;sql:driver&gt; action is <b> only intended for prototyping and simple 
-  applications</b>. An application's business logic (e.g. via a life cycle event 
-  listener or controller servlet) should normally be used to create a DataSource 
-  and make it available to the rest of the application.</p>
-<p>Four configuration parameters can be specified to create a DataSource object 
-  wrapped around a JDBC driver manager:</p>
-<ol>
-  <li>JDBC driver class name -- used to access a database of a specific type</li>
-  <li> JDBC URL to the database -- used to locate a specific database</li>
-  <li> user name -- identifies the user accessing the database</li>
-  <li> password -- the user's password</li>
-</ol>
-<p>All parameters, except for &quot;password&quot;, can be specified via an action 
-  attribute or a context init parameter (see below). Action attributes take precedence 
-  over context init parameters. The password configuration parameter can only 
-  be specified via a context init parameter to prevent situations where sensitive 
-  information would be hard coded in a JSP page.</p>
-<p>The context init parameters are:</p>
-<ul>
-  <li>javax.servlet.jsp.jstl.sql.driver</li>
-  <li> javax.servlet.jsp.jstl.sql.url</li>
-  <li> javax.servlet.jsp.jstl.sql.user</li>
-  <li> javax.servlet.jsp.jstl.sql.password</li>
-</ul>
-<p>For example, assuming a prototype web application whose database is accessible 
-  by anyone without any password:</p>
-<blockquote> 
-  <p><code>&lt;sql:driver var=&quot;dataSource&quot; <br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; driver=&quot;org.gjt.mm.mysql.Driver&quot; 
-    <br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url=&quot;//localhost/appDB&quot;/&gt;</code></p>
-</blockquote>
-<h3>3.5 &lt;sql:param&gt;</h3>
-<h4>Synopsis</h4>
-<p>&lt;sql:param&gt; is used as a subtag of SQLExecutionTag actions such as &lt;sql:query&gt; 
-  and &lt;sql:update&gt; to set the values of parameter markers ('?') specified 
-  in the SQL statement.</p>
-<p>This action may or not have a body. If the action has no body, it is of the 
-  form:</p>
-<blockquote> 
-  <p><code>&lt;sql:param value=<i>&quot;parameterValue&quot;</i>/&gt;</code></p>
-</blockquote>
-<p>If the action has a body, it is of the form:</p>
-<blockquote> 
-  <p><code>&lt;sql:param&gt;<br>
-    &nbsp;&nbsp;... parameter value ...<br>
-    &lt;/sql:param&gt;</code></p>
-</blockquote>
-<h4>Details<br>
-</h4>
-<p> If tag body is used, it is first run through String.trim().</p>
-<p>With the value specified, &lt;sql:param&gt; locates its nearest SQLExecutionTag 
-  ancestor and calls SQLExecutionTag.addSQLParameter(value). The mapping from 
-  Java object types to SQL types is handled according to the JDBC specification 
-  (see method java.sql.PreparedStatement.setObject()).</p>
-<hr width="100%" noshade>
-<h3>4. Interfaces</h3>
-<h3>4.1 &lt;sql:query&gt; result related interfaces</h3>
-<blockquote> 
-  <p><code>public interface Result { <br>
-    &nbsp;&nbsp;public Row[] getRows(); &nbsp;</code><code><br>
-    </code><code>&nbsp;&nbsp;public ResultMetaData getmetaData(); </code><code><br>
-    &nbsp;&nbsp;public int getSize(); &nbsp;// number of rows in the Result<br>
-    &nbsp;&nbsp;public boolean isLimitedByMaxRows();</code><code><br>
-    }</code><code> </code><code> </code></p>
-  <p> <code>public interface ResultMetaData {<br>
-    &nbsp;&nbsp;public ColumnMetaData get(String name);<br>
-    &nbsp;&nbsp;public ColumnMetaData get(int index);<br>
-    &nbsp;&nbsp;public ColumnMetaData[] getColumns();<br>
-    &nbsp;&nbsp;// @@@ non-column meta data here as well<br>
-    }</code></p>
-  <p><code> public interface Row {<br>
-    &nbsp;&nbsp;public Column get(String name);<br>
-    &nbsp;&nbsp;public Column get(int index); <br>
-    &nbsp;&nbsp;public Column[] getColumns();<br>
-    }</code></p>
-  <p><code> public interface ColumnMetaData {<br>
-    &nbsp;&nbsp;public String getName();<br>
-    &nbsp;&nbsp;public int getType();<br>
-    &nbsp;&nbsp;public String getTypeName();<br>
-    &nbsp;&nbsp;... all other relevant <br>
-    &nbsp;&nbsp;... java.sql.ResultSetMetaData information<br>
-    } </code></p>
-  <p><code> public interface Column extends ColumnMetaData {<br>
-    &nbsp;&nbsp;public Object getValue();<br>
-    &nbsp;&nbsp;public String toString();</code><br>
-    } </p>
-  
-</blockquote>
-<p>One key incentive for defining new interfaces representing the result of a 
-  query is to allow simpler access to result data via the Expression Language. 
-  Here are some sample use cases:</p>
-<p>Use case 1: iteration (probably most common use case)</p>
-<blockquote> 
-  <p><code>&lt;c:forEach var=&quot;row&quot; items=&quot;$result.rows&quot;&gt;<br>
-    &nbsp;&nbsp;Price is: &lt;c:expr value=&quot;$row.get('price')&quot;/&gt;</code><code><br>
-    &nbsp;&nbsp;Quantity is: &lt;c:expr value=&quot;$row.columns[3]&quot;/&gt;<br>
-    &lt;/c:forEach&gt;</code></p>
-  </blockquote>
-<p>[Note: <code>$row.get('price')</code> could be replaced by <code>$row.price</code> 
-  if EL supports the mapping <code>$a.prop -&gt; a.get(&quot;prop&quot;)</code>]<br>
-  <br>
-  Use case 2: direct access from $result </p>
-<blockquote>
-  <p><code>Price is: $result.rows[24].price<br>
-    Price is: $result.rows[24].columns[3] </code></p>
-</blockquote>
-<p><br>
-  Use case 3: Putting it all together:</p>
-<blockquote> 
-  <p><code>&lt;table&gt;<br>
-    &nbsp;&nbsp;&lt;!-- header --&gt;<br>
-    &nbsp;&nbsp;&lt;tr&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- for each column in the result --&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;c:forEach var=&quot;metaData&quot; items=&quot;$result.metaData.columns&quot;&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- Column Name --&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;$metaData.name&lt;/th&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;/c:forEach&gt;<br>
-    &nbsp;&nbsp;&lt;/tr&gt;<br>
-    &nbsp;&nbsp;&lt;!-- for each row in the result --&gt;<br>
-    &nbsp;&nbsp;&lt;c:forEach var=&quot;row&quot; items=&quot;$result.rows&quot;&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- for each column in the row --&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;c:forEach var=&quot;column&quot; items=&quot;$row.columns&quot;&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;c:expr value=&quot;$column&quot;/&gt;&lt;/td&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;/c:forEach&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br>
-    &nbsp;&nbsp;&lt;/c:forEach&gt;<br>
-    &lt;/table&gt;</code></p>
-</blockquote>
-<p>
-<h3>4.2 Interface SQLExecutionTag</h3>
-<p>The SQLExecutionTag interface identifies a tag handler that can accept parameter 
-  values from nested tag handlers.</p>
-<blockquote> 
-  <p><code>public interface SQLExecutionTag {<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;public void addSQLParameter(Object value) throws SQLException;<br>
-    }</code></p>
-</blockquote>
-<p>This interface is implemented by both &lt;sql:query&gt; and &lt;sql:update&gt;. 
-  Action &lt;sql:param&gt; invokes method addSQLParameter() of the SQLExecutionTag 
-  interface to set parameter values. </p>
-<p>The parameter's index and semantic interpretation are both the responsibility 
-  of the tag handler; a typical implementation will keep an internal index and 
-  increment it once for each call. </p>
-<p>This interface is public to allow for custom actions that can facilitate the 
-  setting of statement parameters. For example, let's assume an end-user enters 
-  a date in three separate fields: year, month, and day. If the database table 
-  has a single column for the complete date, one could develop a &lt;foo:dateParam&gt; 
-  action to set the corresponding parameter as follows:</p>
-<blockquote>
-  <p> <code>&lt;foo:dateParam year=&quot;$year&quot; month=&quot;$month&quot; 
-    day=&quot;$day&quot; /&gt;</code></p>
-</blockquote>
-<p>Please note that the JSTL internationalization tags support the parsing of 
-  string representations of dates and numbers into their associated data type 
-  (java.util.Date and java.lang.Number respectively). For example:</p>
-<blockquote>
-  <p> <code>&lt;fmt:parseDate var=&quot;myDate&quot; value=&quot;$param:someDate 
-    /&gt;<br>
-    &lt;sql:param value=&quot;$myDate&quot; /&gt;</code></p>
-</blockquote>
-<p></p>
-<hr width="100%" noshade>
-<p></p>
-<h3>5. Summary</h3>
-<table border="1" cellpadding="5">
-  <tr> 
-    <td colspan="2" bgcolor="#000099"><b><font color="#FFFFFF" size="+1">SQL Actions</font></b></td>
-  </tr>
-  <tr bgcolor="#FFFF66"> 
-    <td><b>Action</b></td>
-    <td><b>Sample usage</b></td>
-  </tr>
-  <tr> 
-    <td> 
-      <p><code><b>&lt;sql:query&gt;</b></code></p>
-      <p><code>&lt;sql:query var=<i>&quot;varName&quot;</i> <br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sql=&quot;<i>sqlQuery</i>&quot;<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [dataSource=<i>dataSourceSpec</i>]<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[maxRows=&quot;<i>maxRows</i>&quot;]<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[startRow=&quot;<i>startRow</i>&quot;]/&gt;</code></p>
-      <p><code>&lt;sql:query var=<i>&quot;varName&quot;<br>
-        &nbsp;&nbsp;&nbsp; </i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[sql=&quot;<i>sqlQuery</i>&quot;]<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [dataSource=<i>dataSourceSpec</i>]<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[maxRows=&quot;<i>maxRows</i>&quot;]<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[startRow=&quot;<i>startRow</i>&quot;]/&gt; 
-        </code><code><br>
-        &nbsp;&nbsp;... optional query statement ...<br>
-        &nbsp;&nbsp;... optional &lt;sql:param&gt; actions ...<br>
-        &lt;/sql:query&gt;</code></p>
-      <p>General purpose action for performing SQL queries on a database and gettting 
-        back a single result set containing rows of data.</p>
-    </td>
-    <td> 
-      <p><code>&lt;sql:query var=&quot;customers&quot;<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
-        dataSource=&quot;$dataSource&quot;<i>&gt;<br>
-        </i>&nbsp;&nbsp; SELECT * FROM employees<br>
-        &nbsp; &nbsp;WHERE country = 'China'<br>
-        &nbsp;&nbsp;&nbsp;ORDER BY lastname<br>
-        &lt;/sql:query&gt;<i> </i></code></p>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <p><code><b>&lt;sql:update&gt;</b></code></p>
-      <p><code>&lt;sql:update [var=<i>&quot;varName&quot;</i>] <br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sql=&quot;<i>sqlUpdate</i>&quot;<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [dataSource=<i>dataSourceSpec</i>]/&gt;</code></p>
-      <p><code>&lt;sql:update [var=<i>&quot;varName&quot;]<br>
-        &nbsp;&nbsp;&nbsp; </i></code><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[sql=&quot;<i>sqlUpdate</i>&quot;]<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [dataSource=<i>dataSourceSpec</i>]&gt;<br>
-        &nbsp;&nbsp;... optional query statement ...<br>
-        &nbsp;&nbsp;... optional &lt;sql:param&gt; actions ...<br>
-        &lt;/sql:update&gt;</code></p>
-      <p>General purpose action for &quot;updates&quot;; i.e. statements that 
-        update the database (insert, update, delete) and return nothing or a single 
-        integer. </p>
-    </td>
-    <td> 
-      <p><code>&lt;sql:update&gt;<br>
-        &nbsp;&nbsp;UPDATE account <br>
-        &nbsp;&nbsp;SET BALANCE = ?<br>
-        &nbsp; WHERE accountNo = ?<br>
-        </code><code>&nbsp;&nbsp;&lt;sql:param<br>
-        &nbsp;&nbsp;&nbsp;&nbsp; value=&quot;$balance&quot;&gt;<br>
-        &nbsp;&nbsp;&lt;sql:param<br>
-        &nbsp;&nbsp;&nbsp; &nbsp;value=&quot;$accountNo&quot;&gt;<br>
-        &lt;/sql:update&gt;</code></p>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <p><code><b>&lt;sql:transaction&gt;<br>
-        </b></code><br>
-        <code>&lt;sql:transaction <br>
-        &nbsp;&nbsp; &nbsp;[dataSource=<i>dataSourceSpec</i>] <br>
-        &nbsp;&nbsp;&nbsp;&nbsp;[transactionIsolation=<i>&quot;transactionIsolationLevel&quot;</i>]&gt;<br>
-        &nbsp;&nbsp;... &lt;sql:query&gt; and &lt;sql:update&gt; statements ...<br>
-        &lt;/sql:transaction&gt; </code></p>
-    </td>
-    <td>&nbsp;</td>
-  </tr>
-  <tr> 
-    <td> 
-      <p><code><b>&lt;sql:driver&gt;<br>
-        </b></code><br>
-        <code>&lt;sql:driver var=<i>&quot;varName&quot;</i><br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[driver=&quot;<i>driverClassName</i>&quot;] 
-        <br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[url=&quot;<i>url</i>&quot;]<br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[user=&quot;<i>user</i>&quot;] 
-        /&gt;</code><br>
-      </p>
-      <p>Facilitates the setup of a DataSource object around a JDBC driver for 
-        prototype/simple applications. </p>
-    </td>
-    <td>&nbsp; </td>
-  </tr>
-  <tr> 
-    <td> 
-      <p><code><b>&lt;sql:param&gt;<br>
-        </b></code> </p>
-      <p><code>&lt;sql:param value=<i>&quot;parameterValue&quot;</i>/&gt;</code></p>
-      <p><code>&lt;sql:param&gt;<br>
-        &nbsp;&nbsp;... parameter value ...<br>
-        &lt;/sql:param&gt;</code><br>
-      </p>
-      <p>Subtag of SQLExecutionTag actions such as &lt;sql:query&gt; and &lt;sql:update&gt; 
-        to set the values of parameter markers ('?') specified in the SQL statement.</p>
-    </td>
-    <td>&nbsp; </td>
-  </tr>
-  <tr> 
-    <td> 
-      <p><code><b>&lt;sql:query&gt; result related interfaces<br>
-        </b></code> </p>
-      <p><code>public interface Result<br>
-        </code><code> </code><code>public interface ResultMetaData<br>
-        </code><code>public interface Row</code><code><br>
-        public interface ColumnMetaData</code><code><br>
-        public </code><code>interface Column</code></p>
-      </td>
-    <td>&nbsp; </td>
-  </tr>
-  <tr> 
-    <td> 
-      <p><code><b>interface SQLExecutionTag</b></code> </p>
-      <p>Identifies a tag handler that can accept parameter values from nested 
-        tag handlers.</p>
-    </td>
-    <td>&nbsp; </td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/doc/web/EcmaScriptEL.html b/doc/web/EcmaScriptEL.html
deleted file mode 100644
index 2f32db8..0000000
--- a/doc/web/EcmaScriptEL.html
+++ /dev/null
@@ -1,599 +0,0 @@
-<html>
-<head>
-<title>EcmaScript Expression Language Support</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
-<h1>EcmaScript as an Expression Language for JSTL</h1>
-<h2>Overview</h2>
-<p>EcmaScript is an object-based scripting language for client and server applications. 
-  EcmaScript is the standardized version of JavaScript and behaves the same way 
-  in all applications that support the standard. JavaScript implementations correspond 
-  to the <a href="http://www.ecma.ch/ecma1/stand/ecma-262.htm">ECMA-262</a> Language 
-  Specification standardized by the European standards body.</p>
-<p>Rhino 1.5, one of the supported JSTL EL's, implements JavaScript 1.5, which 
-  conforms to Edition 3 of the EcmaScript Standard. <a href="http://www.mozilla.org/rhino">Rhino</a> 
-  is an open source Java implementation of JavaScript. </p>
-<table border="1" cellpadding="5" align="center">
-  <tr> 
-    <th>Name</th>
-    <th>Links</th>
-    <th>Date</th>
-    <th>Description</th>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">ECMA-262</div>
-    </td>
-    <td> 
-      <div align="left"><a href="http://www.mozilla.org/js/language/E262.pdf">PDF</a></div>
-    </td>
-    <td> 
-      <div align="left">June 1997</div>
-    </td>
-    <td> 
-      <div align="left">The original ECMAScript standard.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">ECMA-262 Edition 2</div>
-    </td>
-    <td> 
-      <div align="left"><a href="http://www.mozilla.org/js/language/E262-2.pdf">PDF</a></div>
-    </td>
-    <td> 
-      <div align="left">August 1998 </div>
-    </td>
-    <td> 
-      <div align="left">The second revision of the ECMAScript standard; also ISO 
-        standard 16262.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">ECMA-262 Edition 3</div>
-    </td>
-    <td> 
-      <div align="left"><a href="http://www.mozilla.org/js/language/E262-3.pdf">PDF</a></div>
-    </td>
-    <td> 
-      <div align="left">December 1999</div>
-    </td>
-    <td> 
-      <div align="left">The third, and most recent, revision of the ECMAScript 
-        standard. Corresponds to JavaScript 1.5.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Proposed EcmaScript Edition 4</div>
-    </td>
-    <td> 
-      <div align="left"><a href="http://www.mozilla.org/js/language/es4/index.html">Home 
-        Page</a></div>
-    </td>
-    <td> 
-      <div align="left">?</div>
-    </td>
-    <td> 
-      <p align="left"><a href="http://www.mozilla.org/js/language/js20/index.html">JavaScript 
-        2.0</a> is the next version of the JavaScript language. It closely matches 
-        the ECMAScript Edition 4 standard under development. The intent is to 
-        make JavaScript 2.0 and ECMAScript Edition 4 be the same language.</p>
-    </td>
-  </tr>
-</table>
-<p>This document gives a brief overview of the main EcmaScript features a page 
-  author may be interested in. </p>
-<h2>Expression Support</h2>
-<p>An expression is any valid set of literals, variables, operators, and expressions 
-  that evaluates to a single value; the value can be a number, a string, a logical 
-  value, or an object.<br>
-</p>
-<p>EcmaScript has the following types of expressions: </p>
-<ul>
-  <li>Arithmetic: evaluates to a number</li>
-  <li>String: evaluates to a character string</li>
-  <li>Logical: evaluates to true or false </li>
-  <li>Object: evaluates to an object </li>
-</ul>
-<h2>Operator Support</h2>
-<p>The following operators should be of interest to a page author.<br>
-</p>
-<h3>Comparison operators</h3>
-<p>A comparison operator compares its operands and returns a logical value based 
-  on whether the comparison is true. The operands can be numerical, string, logical, 
-  or object values. Strings are compared based on standard lexicographical ordering, 
-  using Unicode values.</p>
-<p></p>
-<p></p>
-<p></p>
-<table border="1" align="center" cellpadding="5">
-  <tr> 
-    <th>Operator</th>
-    <th>Description</th>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Equal (==)</div>
-    </td>
-    <td> 
-      <div align="left">Returns true if the operands are equal.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Not equal (!=) </div>
-    </td>
-    <td> 
-      <div align="left">Returns true if the operands are not equal.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Strict equal (===)</div>
-    </td>
-    <td> 
-      <div align="left">Returns true if the operands are equal and of the same 
-        type.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Strict not equal (!==) </div>
-    </td>
-    <td> 
-      <div align="left">Returns true if the operands are not equal and/or not 
-        of the same type. </div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Greater than (&gt;)</div>
-    </td>
-    <td> 
-      <div align="left">Returns true if the left operand is greater than the right 
-        operand.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Greater than or equal (&gt;=)</div>
-    </td>
-    <td> 
-      <div align="left">Returns true if the left operand is greater than or equal 
-        to the right operand.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Less than (&lt;)</div>
-    </td>
-    <td> 
-      <div align="left">Returns true if the left operand is less than the right 
-        operand.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Less than or equal (&lt;=)</div>
-    </td>
-    <td> 
-      <div align="left">Returns true if the left operand is less than or equal 
-        to the right operand.</div>
-    </td>
-  </tr>
-</table>
-<h3>Arithmetic Operators</h3>
-<p>Arithmetic operators take numerical values (either literals or variables) as 
-  their operands and return a single numerical value. These operators work as 
-  they do in most other programming languages, except the / operator returns a 
-  floating-point division in EcmaScript, not a truncated division as it does in 
-  languages such as C or Java.</p>
-<table border="1" align="center" cellpadding="5">
-  <tr> 
-    <th>Operator</th>
-    <th>Description</th>
-  </tr>
-  <tr> 
-    <td> 
-      <p align="left">% (Modulus)</p>
-    </td>
-    <td> 
-      <div align="left">Binary operator. Returns the integer remainder of dividing 
-        the two operands.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">++ (Increment)</div>
-    </td>
-    <td> 
-      <div align="left">Unary operator. Adds one to its operand. Can be used as 
-        a prefix or postfix operator.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">-- (Decrement)</div>
-    </td>
-    <td> 
-      <div align="left">Unary operator. Subtracts one to its operand. Can be used 
-        as a prefix or postfix operator.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">- (Unary negation)</div>
-    </td>
-    <td> 
-      <div align="left">Unary operator. Returns the negation of its operand.</div>
-    </td>
-  </tr>
-</table>
-<h3>Logical Operators</h3>
-<p>Logical operators are typically used with Boolean (logical) values; when they 
-  are, they return a Boolean value. However, the &amp;&amp; and || operators return 
-  the value of one of the specified operands.</p>
-<table border="1" align="center" cellpadding="5">
-  <tr> 
-    <th>Operator</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Logical AND</div>
-    </td>
-    <td> 
-      <div align="left">expr1 &amp;&amp; expr2 </div>
-    </td>
-    <td> 
-      <div align="left">Returns expr1 if it can be converted to false; otherwise, 
-        returns expr2. </div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Logical OR </div>
-    </td>
-    <td> 
-      <div align="left">expr1 || expr2 </div>
-    </td>
-    <td> 
-      <div align="left">Returns expr1 if it can be converted to true; otherwise, 
-        returns expr2. </div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">Logical NOT</div>
-    </td>
-    <td> 
-      <div align="left">!expr </div>
-    </td>
-    <td> 
-      <div align="left">Returns false if its single operand can be converted to 
-        true; otherwise, returns true. </div>
-    </td>
-  </tr>
-</table>
-<h3>String Operators</h3>
-<p>In addition to the comparison operators, which can be used on string values, 
-  the concatenation operator (+) concatenates two string values together, returning 
-  another string that is the union of the two operand strings. </p>
-<p></p>
-<h3>Special Operators</h3>
-<p>Some special operators of interest:</p>
-<table border="1" align="center" cellpadding="5">
-  <tr> 
-    <th>Operator</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">conditional</div>
-    </td>
-    <td> 
-      <div align="left">condition ? val1 : val2</div>
-    </td>
-    <td> 
-      <div align="left">The conditional operator can have one of two values based 
-        on a condition. </div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="left">in</div>
-    </td>
-    <td> 
-      <div align="left">val in Object</div>
-    </td>
-    <td> 
-      <div align="left">The in operator returns true if the specified property 
-        is in the specified object.</div>
-    </td>
-  </tr>
-</table>
-<h2>Reserved Words</h2>
-<p>The reserved words in this list cannot be used as EcmaScript variables, functions, 
-  methods, or object names.</p>
-<table width="95%" border="1" height="298">
-  <tr> 
-    <td> 
-      <p align="center"></p>
-      <p align="center"></p>
-      <p align="center"> </p>
-      <p align="center"> abstract</p>
-    </td>
-    <td> 
-      <div align="center">else</div>
-    </td>
-    <td> 
-      <div align="center">instanceof</div>
-    </td>
-    <td> 
-      <div align="center">switch</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">boolean</div>
-    </td>
-    <td> 
-      <div align="center">enum</div>
-    </td>
-    <td> 
-      <div align="center">int</div>
-    </td>
-    <td> 
-      <div align="center">synchronized</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">break</div>
-    </td>
-    <td> 
-      <div align="center">export</div>
-    </td>
-    <td> 
-      <div align="center">interface</div>
-    </td>
-    <td> 
-      <div align="center">this</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">byte</div>
-    </td>
-    <td> 
-      <div align="center">extends</div>
-    </td>
-    <td> 
-      <div align="center">long</div>
-    </td>
-    <td> 
-      <div align="center">throw</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">case</div>
-    </td>
-    <td> 
-      <div align="center">false</div>
-    </td>
-    <td> 
-      <div align="center">native</div>
-    </td>
-    <td> 
-      <div align="center">throws</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">catch</div>
-    </td>
-    <td> 
-      <div align="center">final</div>
-    </td>
-    <td> 
-      <div align="center">new</div>
-    </td>
-    <td> 
-      <div align="center">transient</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">char</div>
-    </td>
-    <td> 
-      <div align="center">finally</div>
-    </td>
-    <td> 
-      <div align="center">null</div>
-    </td>
-    <td> 
-      <div align="center">true</div>
-    </td>
-  </tr>
-  <tr> 
-    <td height="20"> 
-      <div align="center">class</div>
-    </td>
-    <td height="20"> 
-      <div align="center">float</div>
-    </td>
-    <td height="20"> 
-      <div align="center">package</div>
-    </td>
-    <td height="20"> 
-      <div align="center">try</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">const</div>
-    </td>
-    <td> 
-      <div align="center">for</div>
-    </td>
-    <td> 
-      <div align="center">private</div>
-    </td>
-    <td> 
-      <div align="center">typeof</div>
-    </td>
-  </tr>
-  <tr> 
-    <td height="18"> 
-      <div align="center">continue</div>
-    </td>
-    <td height="18"> 
-      <div align="center">function</div>
-    </td>
-    <td height="18"> 
-      <div align="center">protected</div>
-    </td>
-    <td height="18"> 
-      <div align="center">var</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">debugger</div>
-    </td>
-    <td> 
-      <div align="center">goto</div>
-    </td>
-    <td> 
-      <div align="center">public</div>
-    </td>
-    <td> 
-      <div align="center">void</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">default</div>
-    </td>
-    <td> 
-      <div align="center">if</div>
-    </td>
-    <td> 
-      <div align="center">return</div>
-    </td>
-    <td> 
-      <div align="center">volatile</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">delete</div>
-    </td>
-    <td> 
-      <div align="center">implements</div>
-    </td>
-    <td> 
-      <div align="center">short</div>
-    </td>
-    <td> 
-      <div align="center">while</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">do</div>
-    </td>
-    <td> 
-      <div align="center">import</div>
-    </td>
-    <td> 
-      <div align="center">static</div>
-    </td>
-    <td> 
-      <div align="center">with</div>
-    </td>
-  </tr>
-  <tr> 
-    <td height="2"> 
-      <div align="center">double</div>
-    </td>
-    <td height="2"> 
-      <div align="center">in </div>
-    </td>
-    <td height="2"> 
-      <div align="center">super</div>
-    </td>
-    <td height="2"> 
-      <div align="center"></div>
-    </td>
-  </tr>
-</table>
-<h2>Type Conversion</h2>
-<p>Values passed from Java to JavaScript are converted as follows: </p>
-<table width="95%" border="1">
-  <tr> 
-    <th>Java Types</th>
-    <th>Converted JavaScript Types</th>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">byte, char, short, int, long, float, and double</div>
-    </td>
-    <td> 
-      <div align="center">JavaScript numbers. Instances of java.lang.Double and 
-        java.lang.Integer are converted to JavaScript objects, not to JavaScript 
-        numbers.</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">boolean</div>
-    </td>
-    <td> 
-      <div align="center">JavaScript boolean</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">arrays</div>
-    </td>
-    <td> 
-      <div align="center">JavaScript pseudo-Array object</div>
-    </td>
-  </tr>
-  <tr> 
-    <td> 
-      <div align="center">Java object of any other class</div>
-    </td>
-    <td> 
-      <div align="center">JavaScript wrapper</div>
-    </td>
-  </tr>
-</table>
-<h2>Expression Exceptions</h2>
-<p>When you are evaluating JavaScript code in Java, the following situations can 
-  cause run-time errors: </p>
-<ul>
-  <li>The JavaScript code is not evaluated, either due to a JavaScript compilation 
-    error or to some other error that occurred at run time. 
-    <p>The JavaScript interpreter generates an error message that is converted 
-      into an instance of JSException. </p>
-  </li>
-  <li>Java successfully evaluates the JavaScript code, but the JavaScript code 
-    executes an unhandled throw statement. 
-    <p>JavaScript throws an exception that is wrapped as an instance of JSException. 
-      Use the getWrappedException method of JSException to unwrap this exception 
-      in Java. </p>
-  </li>
-</ul>
-<p>&nbsp;</p>
-</body>
-</html>
diff --git a/doc/web/ExpressionLanguageSupport_FunctionalDescription_2_EA1.html b/doc/web/ExpressionLanguageSupport_FunctionalDescription_2_EA1.html
deleted file mode 100644
index 59a2dd8..0000000
--- a/doc/web/ExpressionLanguageSupport_FunctionalDescription_2_EA1.html
+++ /dev/null
@@ -1,357 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="Pierre Delisle">
-   <title>JSTL: Expression Language Support -- Functional Description</title>
-</head>
-<body bgcolor="#FFFFFF">
-<h2>
-
-  <hr WIDTH="100%" noshade>
-</h2>
-
-<h2> Expression Language Support &#151; Functional Description</h2>
-<hr width="100%" noshade>
-<h3>
-1. Introduction</h3>
-Support for an Expression Language (EL) is a clear requirement for JSTL1.0. We 
-need to address this requirement even though it is utimately the responsibility 
-of the JSR152 expert group to specify how an EL can be seamlessly integrated in 
-JSP, as well as which expression language(s) is/are to be supported by JSP containers. 
-<p>In our quest for an interim solution, JSTL is constrained by the fact
-that this solution must work in the context of JSP1.2, without requiring
-any change to the spec, and that it should integrate seamlessly with JSP.next
-(where an EL would be supported natively). It is also important to consider
-the fact that the specification of an expression language is a rather controversial
-issue that could trigger long debates among the expert group, preventing
-us from getting anything out in any timely fashion.
-<p>Our strategy therefore consists in allowing the easy integration, selection,
-and use of a variety of expression languages via an Expression Language
-Integration API, a set of tags, as well as conventions used throughout
-JSTL. We won't rule on any specific EL immediately. Rather we will allow
-various implementations of Expression Languages to all play in our sandbox.
-The hope is that through experimentation, it will be much easier to evaluate
-the merits of each approach, paving the way for the selection of a single
-or limited number of Expression Language(s) for the final draft of JSTL.
-<h3>
-2. Integration of an Expression Language in JSTL1.0</h3>
-An important requirement for support of an Expression Language within JSTL
-was that a single attribute should support a value specified in any of
-the following 3 forms:
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a. String literal&nbsp;&nbsp;&nbsp;
-att="15"</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b. rtexprvalue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-att="&lt;%= foo.getBar() %>"</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c. elexprvalue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-att="$foo.bar"</tt>
-<p>This requirement made a lot of sense for the following&nbsp; reasons
-<ul>
-<li>
-logically consistent</li>
-
-<li>
-easy to learn</li>
-
-<li>
-lets our tags transition nicely into the future when JSP.next provides
-native support for an Expression Language</li>
-</ul>
-However, there are many issues in trying to support this given that it
-must work in the context of JSP1.2, without requiring any changes to the
-spec. The most important issue we identified is the danger that an rtexprvalue
-could return a String beginning with '$' (or any other metacharacter used
-by an EL to identify an elexprvalue).&nbsp; This wouldn't be a common 'accidental'
-case, but the fear is that it could become something of a security issue.&nbsp;
-If an rtexprvalue's result is based on user input -- e.g.,
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%= request.getParameter("username")
-%></tt>
-<p>-- and the user 'maliciously' enters text beginning with '$' in order
-to establish a context for unchecked evaluation of an expression, an application
-might be coerced into acting in unintentional and unpredicted ways.&nbsp;
-To be safe, every rtexprvalue that picks up data from user input would
-need to be wrapped in a routine that escapes a leading '$' if present.
-<p>Because of this security concern, it was decided to use a different
-mechanism to integrate an EL. It consists in using <i>twin</i> tag libraries,
-as described in the next section.
-<h3>
-2. Twin Tag Libraries to support the Expression Language</h3>
-Among the mechanisms that are now available in JSP1.2 is the ability to deliver 
-more than one taglib in the same JAR file. JSTL therefore has two flavors of libraries: 
-<b>RT</b> (<b>rt</b>exprvalues) and <b>EL</b> (<b>el</b>exprvalues). They only 
-differ in the way they support expressions for attribute values. 
-<p>In an RT tag library, attributes that support expressions support them as 'rtexprvalues'; 
-  i.e. as expressions specified in the page's scripting language (and evaluated 
-  at runtime). This is exactly how things currently work in tag libraries. 
-<p>In an EL tag library, attributes that support expressions support them as 'elexprvalues'; 
-  i.e. as expressions specified in the JSTL Expression Language (and evaluated 
-  at runtime as well). 'rtexprvalues' are not allowed when using an EL tag library. 
-  An 'elexprvalue' is a String literal in the syntax of the EL. It is the responsibility 
-  of the EL to define the metacharacter(s) used to discriminate expressions from 
-  String literals (e.g. use $ at the beginning of an expression). 
-<p>JSTL therefore provides two sets of URIs, one for tags that accept rtexprvalues, 
-  and one for tags that accept elexprvalues. Twin libraries therefore support 
-  the same tags with the same syntax, except that one takes rtexprvalues, the 
-  other takes elexprvalues. 
-<h4>
-Usage</h4>
-<p>These twin tag libraries can be accessed in the following way in a JSP page 
-  (using the &quot;core&quot; taglib as an example):<br>
-  <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;%@ taglib uri="http://java.sun.com/jstl/core" 
-  prefix="c" %><br>
-  &nbsp;&nbsp;&nbsp; </tt><tt>&lt;%@ taglib uri="http://java.sun.com/jstl/core-rt" 
-  prefix="c-rt" %></tt> </p>
-<p>In our examples, we append the value '-rt' to differentiate the 'rtexprvalue" 
-  library from its 'elexprvalue' twin. It is possible to use the two libraries 
-  within the same page, although not recommended for clarity and consistency. 
-</p>
-<p>Within the same tag, all attribute values specified as expressions will
-have to be specified either as 'rtexprvalue' or 'elexprvalue' (cannot mix
-within the same tag), depending on which tag library the tag belongs to.
-<h3>
-3. Expression Language Selection</h3>
-It is possible to define a web-application's default expression language
-via the context parameter <tt>javax.servlet.jsp.jstl.temp.ExpressionEvaluatorClass</tt>.
-The class specified must implement interface <tt>ExpressionEvaluator </tt>(see
-below).
-<p>It is also possible to override the default expression language setting
-with the <tt>&lt;expressionLanguage></tt> action. For example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;jx:expressionLanguage evaluator="<i>evaluator-class</i>"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:forEach items="{products/@key}"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-...</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:forEach></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/jx:expressionLanguage></tt>
-<p>The scope of&nbsp; the expression language specified by the action <tt>&lt;expressionLanguage></tt>
-is limited to its body. <tt>&lt;expressionLanguage></tt> actions can be
-nested, where nested occurrences shadow their ancestors .
-<p>It is illegal to use an expression in a context where no expression
-evaluator is specified (i.e., no <tt>web.xml</tt> declaration and no enclosing
-<tt>&lt;expressionLanguage></tt>).
-<p>The above&nbsp; rules make it possible to validate the syntax of an
-<tt>elexprvalue</tt>
-at translation time.
-<p>If JSTL rules on a single EL, then both the context parameter and the
-tag will become illegal.
-<h3>
-6. Expression Language API</h3>
-User code is expected to only interact with <tt>ExpressionEvaluatorManager</tt>
-which is reponsible to delegate the requested operation to the currently
-<i>active
-</i><tt>ExpressionEvaluator</tt>.
-[Even if JSTL eventually selects a single EL, this will still be the way
-to access the EL]
-<p><tt>&nbsp;&nbsp;&nbsp; public class ExpressionEvaluatorManager {</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Invokes the
-evaluate() method on the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * "active" ExpressionEvaluator.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Object
-evaluate(String attributeName,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String expression,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-Class expectedType,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-Tag tag,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-PageContext pageContext)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws
-ExpressionException, JspException;</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; }</tt>
-<p>As a result of evaluating an expression, two types of Exceptions can
-be thrown by the ExpressionEvaluator.
-<ul>
-  <li> <tt>JspException</tt></li>
-  <p>Fatal condition that should never be caught by the user code. <br>
-    &nbsp; 
-  <li> <tt>ExpressionException</tt></li>
-  <br>
-  <p>An error related to the evaluation of a particular exception, which is not 
-    expected to cause further problems when evaluating any other expressions.&nbsp; 
-    Tags may catch this if they wish to detect failure of an expression to complete 
-    evaluation satisfactorily.
-</ul>
-The distinction between these two types of exceptions is useful for actions
-such as <tt>&lt;expr></tt> that prefers displaying a default value rather
-than having an error page displayed should an object in the expression
-be inaccessible (e.g. if <tt>address</tt> yielded a null pointer in the
-expression <tt>$customer.address.city</tt>). The EL therefore decides what's
-fatal (<tt>JspException</tt>) and what isn't (<tt>ExpressionException</tt>).
-<p><tt>&nbsp;&nbsp;&nbsp; public class ExpressionException extends JspException;</tt>
-<p>The&nbsp; integration of custom Expression Languages will be possible
-during the Early Access phase of JSTL to help us experiment with various
-ELs. An Expression Language implementation simply needs to implement interface
-<tt>ExpressionEvaluator</tt>.
-Check the details of the JSTL implementation to see if there are any constraints
-on the implementation of an ExpressionEvaluator.
-<br>[For example, one could impose that the implementation of&nbsp; <tt>ExpressionEvaluator</tt>
-be thread-safe, and&nbsp; that there is no guarantee that a single instance
-will be used for all evaluations (if an implementation of an <tt>ExpressionEvaluator</tt>
-wants to store state (such as an expression cache), a static member variable
-with proper synchronization should then be used).]
-<p><tt>&nbsp;&nbsp;&nbsp; public interface ExpressionEvaluator {</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Translation
-time validation of an expression.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * This method
-will return a null String if the expression</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * is valid; otherwise
-an error message.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String validate(String
-attributeName,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String expression);</tt>
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Evaluates the
-expression at request time.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Object evaluate(String
-attributeName,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String expression,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-Class expectedType,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-Tag tag,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-PageContext pageContext)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws
-ExpressionException, JspException;</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; }</tt>
-<h3>
-7. Custom Tags using the JSTL Expression Language(s)</h3>
-Custom tag developers can support expression languages in their tags using
-the same conventions established in this document.
-<p>Assuming a custom action named <tt>foo</tt>; one could have the following
-implementation classes:
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FooTag</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-/&nbsp; \</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&nbsp;&nbsp;&nbsp;
-\</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; FooTagRT&nbsp; FooTagEL</tt>
-<p>The only code in FooTagRT and FooTagEL are the setter and getter methods
-for the attributes that support expressions (they cannot be inherited because
-the properties do not have the same type; String for EL and the "native"
-type for RT).
-<p>FooTagEL also needs to override doStartTag() to evaluate the elexprvalue
-first, and then call back into the base class. For example:
-<p><tt>&nbsp; public void setFoo(String fooEL) throws JspException {</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.fooEL = fooEL;</tt>
-<br><tt>&nbsp; }</tt>
-<p><tt>&nbsp; public int doStartTag() throws JspException {</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foo = ExpressionEvaluatorManager.evaluate</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-("foo", fooEL, FooType.class, this, pageContext);</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return super.doStartTag();</tt>
-<br><tt>&nbsp; }</tt>
-<p>It is important to note that the evaluation of the expression must be
-performed within the <tt>doStartTag()</tt> method. The lifecycle of a tag
-is such that the setter method of values that no not change (string literals)
-may not necessarily be called if the tag is reused by the container. Since
-an elexprvalue is specified as a string literal, this could cause an elexprvalue
-to not to be "re-evaluated" if the evaluation were to be performed in the
-setter method.
-<p>Two TLDs must be written. The only differences are:
-<ul>
-<li>
-tool support info elements (short-name, description, etc...)</li>
-
-<li>
-&lt;uri></li>
-
-<br>(e.g. "http://acme.com/mytaglib-rt", "http://acme.com/mytaglib-el")
-<li>
-&lt;tag-class> for each attribute that supports expression values</li>
-
-<br>(e.g. FooTagRT vs FooTagEL)
-<li>
-&lt;rtexprvalue> true for the RT tag library, false for EL tag library</li>
-</ul>
-When JSP.next comes, a unified tag library can be created. All there is
-to do is merge the base classes with the RT classes, and remove the 'EL'
-classes and the EL TLD.
-<h3>
-8. Validation of elexprvalues at translation time</h3>
-@@@ FIXME During the Early Access phase where multiple ELs are made available 
-for experimentation, translation time validation of elexprvalues must be performed 
-by a TagLibraryValidator so the proper ExpressionEvaluator can be invoked for 
-the validation (a TEI would not be able to establish the execution context). One 
-such TagLibraryValidator, <tt>ExpressionEvaluatorTLV</tt>,&nbsp; is made available 
-to support translation time validation of elexprvalues of JSTL tags, as well 
-as for any other custom tag library. 
-<p>It supports an initialization parameter (<tt>custom-taglibs)</tt> to
-specify the list of custom tag libraries that should be validated for elexprvalues
-(* to specify all).
-<p>For example:
-<p><tt>&nbsp; &lt;taglib></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; ...</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;validator></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;validator-class>javax.servlet.jsp.jstl.core.ExpressionEvaluatorTLV&lt;/validator-class></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>custom-taglibs&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>*&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/validator></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; ...</tt>
-<br><tt>&nbsp; &lt;/taglib></tt>
-<p>If the JSTL ends up specifying a single EL, then translation-time validation
-could be performed within the TagExtraInfoClass by simply calling <tt>ExpressionEvaluatorManager.validate()
-</tt>on
-each elexprvalue.
-<h3>
-9. Relationship with future JSP specs</h3>
-The expression language integration model for JSTL will work fine with
-JSP 1.2 containers and above. Nothing in that model gets in the way of
-the JSP specification should it decide to include native support for expression
-language(s).
-<p>When a JSP spec comes with native support for an EL (JSP.next), the
-assumption is that EL expressions would be supported natively only for
-attributes where rtexprvalue=true.
-<p>The twin libraries would behave as follows in a JSP.next environment:
-<ul>
-<li>
-<b>JSTL-1.0-RT</b></li>
-
-<br>Will keep working as before, with the addition that it will also be
-possible to specify elexprvalues.
-<li>
-<b>JSTL-1.0-EL</b></li>
-
-<br>Tags will keep working exactly as before; no change. The elexprvalues
-will still be evaluated by the tag library, and not the container since
-rtexprvalue=false for all attributes in that tag library.</ul>
-The only drawback to the semantics of 'EL is only interpreted in a rtexprvalue
-attribute' is that somebody can type a="$expr" and get a literal when they
-really meant "evaluate expr".
-<p>Is it important or not? One may argue that most attributes support rtexprvalues,
-except for the few cases where the value needs to be known at translation
-time (in which case elexprvalues cannot be used). For example:
-<ul>
-<li>
-scripting variable names</li>
-
-<li>
-value is the *type* of a scripting variable exported by the tag</li>
-
-<li>
-value needs to be known by a validator (e.g., for the &lt;jsptl:expressionLanguage>
-tag)</li>
-</ul>
-This is a JSP.next issue. If this is seen as an important issue, it could
-be made a translation-time error to use unescaped $ syntax in a non-rtexpr
-attribute. But this would have the disadvantage of breaking JSPs that use
-the EL version of the twin tag libraries.
-<p>At the same time as JSP.next comes out, the goal would be to have a
-new version of the tag library that removes the distinction between RT
-and EL. For example: "http://java.sun.com/jsptl-1.0" (no suffix). The TLD
-would state a dependency on JSP.next.
-<br>&nbsp;
-<br>&nbsp;
-</body>
-</html>
diff --git a/doc/web/ExpressionTags_FunctionalDescription_1_EA1.html b/doc/web/ExpressionTags_FunctionalDescription_1_EA1.html
deleted file mode 100644
index 171e76e..0000000
--- a/doc/web/ExpressionTags_FunctionalDescription_1_EA1.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="Pierre Delisle">
-   <title>JSTL: Expression Language Support Tags -- Functional Description</title>
-</head>
-<body bgcolor="#FFFFFF">
-<h2>
-
-  <hr WIDTH="100%" noshade>
-</h2>
-
-<h2>
-Expression Language Support Tags - Functional Description</h2>
-<h2><tt>&lt;expr><br>
-  &lt;set><br>
-  &lt;declare&gt; </tt></h2>
-<hr width="100%" noshade>
-<h3>
-1. <tt>&lt;expr></tt></h3>
-The <tt>&lt;expr></tt> action evaluates an expression and outputs the result
-of the evaluation to the current JspWriter object. It is the equivalent
-of <tt>&lt;%= %></tt> with the difference that it is meant for the Expression
-Language world (as opposed to the scripting language world).
-<p>The expression to be evaluated is specified via the attribute <tt>value</tt>
-and must be in the syntax of the current Expression Language. The result
-of the evaluation is coerced to a String and is subsequently emitted into
-the current JspWriter object.
-<p>For example:
-<p><tt>&nbsp; Hello &lt;c:expr value="$request:name"/></tt>
-<p>is equivalent to
-<p><tt>&nbsp; Hello &lt;%=pageContext.getAttribute("name", PageContext.SCOPE_REQUEST)%></tt>
-<p>assuming the expression language interprets the elexprvalue <tt>$request:name</tt>
-as meaning the value of the name attribute in the request scope.
-<p>As a convenience, this action also supports the notion of <i>default value</i> 
-  for cases where the value of an object in the elexprvalue is not accessible. 
-  The default condition is triggered when the Expression Language throws an ExpressionException 
-  while evaluating the expression (to report failure to complete evaluation satisfactorily) 
-  or if the evaluation of the expression completes, but the result is null. This 
-  condition usually happens when one of the objects in the expression is null. 
-  For example, in the example below, this exception would be thrown if the address 
-  property of the customer object were null. Check the details of the expression 
-  language to clearly understand under which circumstances the ExpressionException 
-  is thrown. 
-<p>The default value can be specified either via attribute <tt>default:</tt>
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;c:expr value="$customer.address.city" default="unknown"/></tt>
-<p>or within the body of the tag:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;c:expr value="$customer.address.city"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;acme:defaultCity/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/c:expr></tt>
-<p>The two ways to specify a default value cannot be used simultaneously.
-<p>The <tt>&lt;expr></tt> action&nbsp; is only available in the EL version of 
-  the library. 
-<h3>
-2. <tt>&lt;set></tt></h3>
-The <tt>&lt;set></tt> action sets the value of an attribute in any of the
-JSP scopes (page, request, session, application). If the attribute does
-not already exist, it is created.
-<p>The JSP scoped attribute can be set either from attribute value:
-<p><tt>&nbsp; &lt;c:set var="foo" scope="session" value="..."/></tt> 
-<p>or from the body of the tag:
-<p><tt>&nbsp; &lt;c:set var="foo"></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</tt>
-<br><tt>&nbsp; &lt;/c:set></tt>
-<p>Setting the value of a JSP scoped attribute from the tag's body content&nbsp;
-is useful to solve the problem associated with the fact that a tag attribute's
-value cannot be set from a tag. In the past, a tag developer would have
-to offer extra "attributes as tags" so the value of these attributes could
-be set from other tags. For example:
-<p><tt>&nbsp; &lt;acme:atag></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;x:att1>&lt;x:foo>mumbojumbo&lt;/x:foo>&lt;/x:att1></tt>
-<br>
-  <tt>&nbsp; &lt;/acme:atag></tt> 
-<p>With the <tt>&lt;set></tt> tag, this can be handled without requiring
-the extra <tt>&lt;att1></tt> tag.
-<p><tt>&nbsp; &lt;c:set var="att1">&lt;x:foo>mumbojumbo&lt;/x:foo>&lt;/c:set></tt> 
-  <br>
-  <tt>&nbsp; &lt;acme:atag att1="$att1"/></tt> 
-<p><font size=+0>Attribute <tt>scope</tt> is used to specify the scope
-of the JSP attribute targetted by the &lt;set> tag. It is an optional attribute
-that defaults to "page". The accepted values are restricted to: page, request,
-session, and application.</font>
-<p><font size=+0>The &lt;set> tag is only available in the EL version of the library</font><font size=+0>.</font> 
-<h3> 3. <tt>&lt;declare></tt></h3>
-Given that an Expression Language is supported in JSTL, the need for scripting
-should be reduced substantially. However, until a JSP.next comes around
-with native support for the Expression Language, page authors will still
-have to deal with situations where some attributes of non-JSTL tags must
-be specified as rtexprvalues.
-<p>For example, &lt;myTag> below expects to receive an "Order" object using an 
-  rtexprvalue. Because <code>var</code> is not exported as a scripting variable 
-  in the &lt;forEach> tag, the code below would trigger a translation time error 
-  because the scripting variable customer does not exist. 
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:forEach items="$customers" var="customer"></tt> 
-  <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;acme:myTag order=&lt;%=customer.getOrder()%>
-/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c:forEach></tt>
-<p>There needs to be a simple way to define a scripting variable to bridge
-the gap between the EL and scripting worlds until JSP.next comes.
-<p>The <tt>&lt;declare></tt> tag is used for that purpose. In the example below, 
-  a scripting variable "customer" is created as a reference to the JSP scoped 
-  attribute of the same name. 
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:forEach items="$customers" var="customer"></tt> 
-  <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:declare id="customer" 
-  type="acme.Customer"/></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;acme:myTag order=&lt;%=customer.getOrder()%>
-/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c:forEach></tt>
-<p>When jsp.next comes, the above code would simply become:
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:forEach items="$customers" var="customer"></tt> 
-  <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;acme:myTag order="$customer.order"
-/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c:forEach></tt>
-<p>without requiring any modification to the <tt>&lt;acme:myTag></tt> tag.
-<p>The same requirement for a bridge between the EL and scripting worlds exists 
-  whether a page author uses the EL or RT version of JSTL. This tag therefore 
-  exists in both the EL and RT versions of thelibrary. 
-<ul>
-  <li> <b><tt>id</tt></b> The name of the scripting variable to be exported</li>
-  <li> <b><tt>type</tt></b> The type of the scripting variable. Optional. Defaults 
-    to java.lang.Object.</li>
-</ul>
-The visibility of the scripting variable is always AT_END. <br>
-&nbsp;
-</body>
-</html>
diff --git a/doc/web/GettingStarted.html b/doc/web/GettingStarted.html
deleted file mode 100644
index ce230e6..0000000
--- a/doc/web/GettingStarted.html
+++ /dev/null
@@ -1,201 +0,0 @@
-<html>
-<head>
-<title>JSTL: Getting Started</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-<h1>Getting started with JSTL 1.0 (Beta 2)</h1>
-
-<p>This document describes how to get up and running quickly with JSTL's
-second early-access release.  It can be useful to page authors and tag
-developers who are interested in JSTL's functionality.  Using the
-"jstl-examples" application is also a great way to familiarize yourself
-with JSTL's functionality and use.</p>
-
-<p><b>IMPORTANT:</b> This release of JSTL is an early-access release and
-does not represent a standard of any kind.  The API and implementation are
-subject to change in the future. The major purpose of this release is to
-provide early information to the community of JSP developers about the
-direction and scope of JSTL.  Community feedback is actively sought; if
-you have any comments, please email us at
-<a href="mailto:jsr-52-comments@jcp.org">jsr-52-comments@jcp.org</a>.
-
-<hr />
-<h2>Introduction</h2>
-
-<a name="#1.1" /></a>
-<h3>What is JSTL?  Where does it come from?</h3>
-
-<p>JSTL is the JSP(tm) Standard Tag Library.  It is an effort of the Java
-Community Process (JCP) and comes out of the JSR-052 expert group.</p>
-
-<a name="#1.2" /></a>
-<h3>What does JSTL do?</h3>
-
-<p>JSTL encapsulates, as simple tags, core functionality common to many
-JSP applications.  For example, instead of suggesting that you iterate
-over lists using a scriptlet or different iteration tags from
-numerous vendors, JSTL defines a standard &lt;forEach&gt; tag that works
-the same everywhere.</p>
-
-<p>This standardization lets you learn a single tag and use it on multiple
-JSP containers.  Also, when tags are standard, containers can recognize
-them and optimize their implementations.</p>
-
-<p>The current early-access release of JSTL has support for core iteration
-and control-flow features, text inclusion, internationalizaton-capable
-formatting tags, and XML-manipulation tags.  It also supports an
-<i>expression language</i> to simplify page development, and it includes
-an experimental version of several such languages for testing purposes.  
-Developers may also be interested in JSTL's current extensibility
-mechanisms; JSTL currently provides a framework for integrating custom
-tags with JSTL tags.</p>
-
-<h3>What does "early access" mean?</h3>
-
-<p>As we noted above, <b>this release of JSTL is not an official release;
-it does not represent a final standard of any kind</b>.  Basing production
-systems on the APIs and implementations offered here is not advised.  The
-good news is that you still have time to comment on JSTL before it is
-finalized:  mail us at <a href="mailto:jsr-52-comments@jcp.org">
-jsr-52-comments@jcp.org</a> if you have any comments.</p>
-
-<h3>What has changed in this release?</h3>
-<p>Please see the <a href="ReleaseNotes.html">Release Notes</a> document for 
-  information on JSTL RI changes.</p>
-
-<p>&nbsp;</p>
-
-<hr />
-<h2><a name="#2" /></a>Getting started quickly</h2>
-
-<p>JSTL 1.0 Beta 2 uses features provided only by the JSP 1.2 standard draft, so it requires 
-  a JSP 1.2 container. We recommend you test JSTL with Tomcat 4.0.</p>
-
-<p>To install Tomcat, follow the instructions at <a
-href="http://jakarta.apache.org/tomcat">http://jakarta.apache.org/tomcat</a>.
-To install the JSTL libraries for use in a web application, follow the
-instructions at <a
-href="http://jakarta.apache.org/taglibs/binarydist.html">
-http://jakarta.apache.org/taglibs/binarydist.html</a>.  You can also use
-the "jstl-examples" application as a guide.</p>
-
-<!--
-<p>If your web application does not already use an XML parser, you will
-need to make one available because current versions of Tomcat do not. See
-the Tomcat 4 release notes (RELEASE-NOTES-4.0-B7.txt in the top level
-directory of your Tomcat distribution) for more information about XML
-parsers in Tomcat 4.</p>
--->
-
-<p>To use JSTL, include the 'standard.jar' file in your application's
-WEB-INF/lib directory.  If you use the default expression language
-(ECMAScript), you should also include the distribution's 'js.jar' file in
-WEB-INF/lib.</p>
-
-<h3>Multiple tag libraries</h3>
-
-<p>See the <a href="Overview.html">Overview Document</a> for information
-on JSTL's constituent tag libraries.  That document lists JSTL's
-current TLD URIs and recommended taglib prefixes.</p>
-
-<p>Using the JSTL libraries is simple; you simply need to import them into
-your JSP pages using the <b>taglib</b> directive.  For instance, to import
-the core JSTL library into your page, you would include the following line
-at the top of your JSP page, as follows:</p>
-
-<pre>
-    &lt;%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %&gt;
-</pre>
-
-<h3>Expression language</h3>
-
-<p>Half of JSTL's tag libraries -- the recommended ones -- rely on an expression language. The EL makes it easy for page authors to access and manipulate application data.</p> 
-
-<p>For an overview and detailed definition of the default EL see <a href="http://www.jcp.org/aboutJava/communityprocess/review/jsr052/index.html">JSTL 1.0 Specification</a> Chapter 3 and Appendix A respectively.</p>
- 
-<p>The JSTL RI used to let you switch between a number of different expression languages to facilitate experimentation and feecback. Multiple languages are no longer supported since a default EL has been decided upon. </p>
-
-<p>
-
-<p>The attributes in tags for the EL version of the library do not accept
-rtexprvalues.  Instead, you specify literal expressions that the tags
-evaluate at runtime.  For example:</p>
-
-<pre>
-    &lt;c:forEach items="<b>${page.myItems}</b>" /&gt;
-</pre>
-
-<h3>Topics covered in JSTL 1.0 Beta 2</h3>
-
-<p>As we mentioned above, JSTL 1.0 Beta 2 includes core tags to support iteration, conditionals, 
-  and expression-language support. For more information on precisely how these 
-  tags work, you should read the "Functional Description" documents provided as 
-  part of this distribution. Here, we just offer a quick roadmap of each feature 
-  in order to help orient you.</p>
-
-<dl> 
-  <dt><b>Iteration</b></dt>
-  <dd>The core iteration tag is &lt;forEach&gt;, which iterates over most collections 
-    and similar objects you'd think to iterate over. &lt;forTokens&gt; lets you 
-    iterate over tokens in a <tt>String</tt> object; it lets you specify the <tt>String</tt> 
-    and the delimiters.</dd>
-  <dt><b>Conditionals</b></dt>
-  <dd>JSTL supports a simple conditional &lt;if&gt; tag along with a collection 
-    of tags -- &lt;choose&gt;, &lt;when&gt;, and &lt;otherwise&gt; -- that support 
-    mutually exclusive conditionals. These latter three tags let you implement 
-    a typical <tt>if/else if/else if/else</tt> structure.</dd>
-  <dt> <b>Expression languages</b></dt>
-  <dd>JSTL provides a few tags to facilitate use of expression languages. &lt;out&gt; 
-    prints out the value of a particular expression in the current EL, similar 
-    to the way that the scriptlet expression (&lt;%= ... %=&gt;) syntax prints 
-    out the value of a expression in the scripting language (typically Java). 
-    &lt;set&gt; lets you set a scoped attribute (e.g., a value in the request, 
-    page, session, or application scopes) with the value of an expression.</dd>
-  <dt> <b>Text inclusion</b></dt>
-  <dd>JSP supports the <tt>jsp:include</tt> tag, but this standard action is limited 
-    in that it only supports relative URLs. JSTL introduces the <tt>c:import</tt> 
-    tag, which lets you retrieve absolute URLs. For instance, you can use <tt>c:import</tt> 
-    to retrieve information from the web using HTTP URLs, or from a file server 
-    using an FTP URL. The tag also has some advanced support for performance optimizations, 
-    avoiding unnecessary buffering of data that's retrieved.</dd>
-  <dt> <b>I18N-capable text formatting</b></dt>
-  <dd>Formatting data is one of the key tasks in many JSP pages. JSTL introduces 
-    tags to support data formatting and parsing. These tags rely on convenient 
-    machinery to support internationalized applications. </dd>
-  <dt> <b>XML manipulation</b></dt>
-  <dd>You can't look anywhere these days without seeing XML, and JSTL gives you 
-    convenient support for manipulating it from your JSP pages. Parse documents, 
-    use XPath to select content, and perform XSLT transformations from within 
-    your JSP pages.</dd>
-  <dt><b>Database access</b></dt>
-  <dd>Easily access relational databases using the SQL actions. You can perform database queries, easily access results, perform updates, and group several operations into a transaction.</dd>
-  <dt>&nbsp;</dt>
-</dl>
-
-<h3>For tag developers...</h3>
-
-<p>Developers of custom tags should also read the "Functional Descriptions" provided 
-  for each topic addressed by JSTL 1.0 EA. JSTL 1.0 EA provides some abstract classes 
-  that assist with rapid development of tags and promote integration of custom 
-  tags with JSTL's tag set.</p>
-
-<p>For instance, custom tags can use JSTL's expression-language
-mechanism.  As another example, extending
-<tt>javax.servlet.jsp.jstl.core.ConditionalTagSupport</tt> lets you write a
-conditional tag by merely implementing a single method that returns a
-<tt>boolean</tt> value correspondent with your tag's desired conditional
-behavior; also, this base class promotes JSTL's recommended model of
-conditional-tag design.</p>
-
-<p>Similarly, <tt>javax.servlet.jsp.jstl.core.IteratorTagSupport</tt> lets
-you easily implement iteration tags.  The handlers for the &lt;forEach&gt;
-and &lt;forTokens&gt; tags extend this class and thus implement the
-<tt>javax.servlet.jsp.jstl.core.IteratorTag</tt> interface, which provides
-a well-defined mechanism for iteration tags to communicate with custom
-subtags you can write.  See the "jstl-examples" application for one
-example of how you might use such custom subtags.</p>
-
-</body>
-</html>
diff --git a/doc/web/I18N_FunctionalDescription_5_EA2.html b/doc/web/I18N_FunctionalDescription_5_EA2.html
deleted file mode 100644
index e8192d7..0000000
--- a/doc/web/I18N_FunctionalDescription_5_EA2.html
+++ /dev/null
@@ -1,989 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.76C-CCK-MCD Netscape [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
-   <title>I18N -- Functional Description</title>
-<style media="screen" type="text/css"><!--
-.fixme { color: red }
---></style>
-</head>
-<body bgcolor="#FFFFFF">
-
-<h3>
-
-<hr width="100%" noshade></h3>
-
-<h2>
-I18N/Formatting Tags - Functional Description&nbsp;<br>
-</h2>
-
-<h2>
-<tt>&lt;fmt:locale><br>
-&lt;fmt:timeZone><br>
-&lt;fmt:bundle><br>
-&lt;fmt:message><br>
-&lt;fmt:messageFormat><br>
-&lt;fmt:messageArg><br>
-&lt;fmt:formatNumber><br>
-&lt;fmt:parseNumber><br>
-&lt;fmt:formatDate><br>
-&lt;fmt:parseDate><br>
-&lt;fmt:exception></tt></h2>
-
-<hr width="100%" noshade>
-<h3>
-1. Introduction</h3>
-With the explosion of application development based on web technologies,
-and the deployment of such applications on the Internet, applications must
-be able to adapt to the languages and formatting conventions of their clients.
-This means that page authors must be able to tailor any locale-specific
-page content according to the conventions of the client's language and
-cultural formatting conventions. For example, the number <tt>345987.246
-</tt>should
-be formatted as <tt>345 987,246 </tt>for French, <tt>345.987,246
-</tt>for
-German, and <tt>345,987.246</tt><i> </i>for clients<i> </i>in the U.S.
-<p>The process of designing an application (or page content) so that it
-can be adapted to various languages and regions without requiring any engineering
-changes is known as <i>internationalization</i>, or I18N for short. Once
-a web application has been internationalized, it can be adapted for a number
-of regions or languages by adding locale-specific components and translating
-text. This process is known as <i>localization</i>.
-<p>There are two approaches to internationalizing a web application:
-<ul>
-<li>
-Provide a version of the JSP in each of the target locales and have a controller
-servlet dispatch the request to the appropriate page (depending on the
-requested locale). This approach is useful if large amounts of data on
-a page or an entire web application need to be internationalized.</li>
-
-<li>
-Isolate any locale-sensitive data on a page (such as error messages, string
-literals, or button labels) into resource bundles, and access the data
-via I18N tags, so that the corresponding translated message is fetched
-automatically and inserted into the page.</li>
-</ul>
-This proposal supports both approaches. It defines two sets of<font size=+0>
-tags: I18N tags, whose purpose is to assist page authors with creating
-internationalized page content that can be localized into any locale available
-in the JSP container&nbsp; (this addresses the second approach), and formatting
-tags, which allow various data elements such as numbers, currencies, dates
-and times to be formatted and parsed in a locale-sensitive or customized
-manner (this may be used in either approach).</font>
-<h3>
-2. Locale selection</h3>
-JSTL supports both browser- and application-based locales, which are discussed
-in more detail.
-<h4>
-2.1 Browser-based locales</h4>
-By default, browser-sensing capabilities for locales are enabled. This
-means that the client determines (via its browser settings) which locale
-to use, and allows page authors to cater to the language preferences of
-their clients. For example, a shopping application may want to greet its
-customers in their language, and it may even want to label its GUI components
-in that language (for example, a cancel button would be labelled
-<tt>Cancel</tt>&nbsp;
-for English and <tt>Abbrechen</tt> for German speaking customers).
-<p>Any action that requires a locale first calls the <tt>getLocales()</tt>
-method on the incoming request, which provides a list, in order of preference,
-of the locales that the client wants to use. This list is processed differently
-depending on whether the action is an I18N or a formatting tag.
-<h5>
-2.1.1 Resource bundle locale</h5>
-Any I18N actions that acquire a resource bundle based on its base name
-(that is, the <tt>&lt;bundle></tt> action which (always) takes a <tt>basename</tt>
-attribute and the <tt>&lt;message></tt> action which may use the default
-resource bundle base name defined by the <tt>javax.servlet.jsp.jstl.i18n.basename
-</tt>attribute)
-determine the best matching locale by comparing the list of client locales
-against the list of available locales for the resource bundle in question,
-as follows:
-<p>For each of the client's preferred locales (in order of preference),
-the action checks if there is a matching locale for the resource bundle
-in question, by passing the resource bundle's base name and the client's
-requested locale to the <tt>java.util.ResourceBundle.getBundle()</tt> method.
-The returned locale may either match both the country and language of the
-requested locale (exact match), only its language, or neither. If there
-is an exact match, it is used, and no further client locales are checked.
-Otherwise, the first match on language is used. If no such match exists,
-the fallback locale is used by searching the <tt>javax.servlet.jsp.jstl.i18n.fallbackLocale</tt>
-attribute in the page, request, session (if valid), and application scope(s)
-(in this order) (see Section 16: <i>Configuration parameters</i>). If this
-attribute does not exist, the default locale of the JSP container's Java
-runtime is used.
-<p>For example, if the client's preferred locales were <tt>ja</tt>, <tt>en-UK</tt>,
-<tt>en-US</tt>,
-<tt>en-CA</tt>,
-and f<tt>r </tt>(in this order), and the available ones (for the resource
-bundle in question) <tt>en</tt> and
-<tt>fr</tt>, the best match would be
-<tt>en</tt>;
-if the available ones were
-<tt>en</tt>,
-<tt>en-US</tt>, and
-<tt>fr</tt>,
-then the best match would be <tt>en-US</tt>.
-<p>&nbsp;The behavior is implementation-defined if the set of available
-resource bundles changes during execution of the page. Implementations
-may thus cache the best matching locale for a given resource bundle when
-one is found.
-<h5>
-2.1.2 Formatting locale</h5>
-This is the locale used by the <tt>&lt;formatNumber></tt>, <tt>&lt;parseNumber></tt>,
-<tt>&lt;formatDate></tt>,
-and <tt>&lt;parseDate></tt> actions.
-<p>If the formatting action is enclosed within a <tt>&lt;bundle> </tt>action,
-the locale of the parent bundle is used as the formatting locale.
-<p>Otherwise, if the <tt>javax.servlet.jsp.jstl.i18n.basenam</tt>e attribute
-is set, the best matching locale for that base name is determined (according
-to the algorithm described in Section 2.1.1) and used as the formatting
-locale.
-<p>Otherwise, the formatting action checks, for each of the client's preferred
-locales (in order of preference), if there is a matching locale available.
-The <tt>&lt;formatNumber>
-</tt>and<tt> &lt;parseNumber></tt>, and the <tt>&lt;formatDate>
-</tt>and
-<tt>&lt;parseDate>
-</tt>actions
-determine the available locales by calling <tt>java.text.NumberFormat.getAvailableLocales()</tt>
-and <tt>java.text.DateFormat.getAvailableLocales()</tt>, respectively.
-If there is an exact match (that is, a client locale matches both the language
-and country of an available locale), it is used, and no further client
-locales are checked. Otherwise, the first match on language is used. If
-no such match exists, the default locale of the JSP container's Java runtime
-is used. Once the best matching locale has been determined, it is cached,
-so that any subsequent formatting actions on the same page do not have
-to determine it again.
-<h4>
-2.2. Application-based locales</h4>
-The browser-sensing capabilities for locales can be disabled by setting
-the <tt>javax.servlet.jsp.jstl.i18n.locale</tt> (scoped) attribute. This
-attribute may be set directly by application code for any of the JSP scopes.
-For example, an application might let its users pick their preferred locale
-and then set the <tt>javax.servlet.jsp.jstl.i18n.locale
-</tt>attribute
-accordingly. Alternatively, the <tt>&lt;locale> </tt>action may be used
-to set the <tt>javax.servlet.jsp.jstl.i18n.locale </tt>attribute with page
-scope only. This may be useful in the case where a client's preferred locale
-is retrieved from a database (using the JSTL database tags)and installed
-on the page using the <tt>&lt;locale></tt> tag.
-<p>The <tt>javax.servlet.jsp.jstl.i18n.locale</tt> attribute is searched
-in the page, request, session (if valid), and application scope(s) (in
-this order).
-<h3>
-3. Response encoding</h3>
-It is the page author's responsibility to make sure that a page's character
-encoding accommodates all characters, including any valid Java (Unicode
-2.0) character, that the page's actions may output at runtime.
-<p>Because this proposal's I18N tags address situations requiring multiple
-locales, they are perhaps more likely than most to output characters that
-cannot be accommodated by the default ISO-8859-1 character encoding.
-<p>Page authors should take note of this and consider using the page directive's
-<tt>contentType</tt>
-attribute to explicitly set the character encoding in the <tt>Content-Type</tt>
-response header in situations where the default (ISO-8859-1) is not sufficient.
-<h3>
-4. Time zone</h3>
-The <tt>javax.servlet.jsp.jstl.i18n.timeZone </tt>JSP attribute specifies
-the time zone in which any time information formatted using the <tt>&lt;formatDate></tt>
-action is represented. This allows any time information on a page to be
-tailored to the preferred time zone of its clients, which is useful if
-the server hosting the page containing the time information and its clients
-reside in different time zones. Page authors could be advised to always
-use the "long" time format which includes the time zone, but that would
-still require clients to convert the formatted time into their own time
-zone.
-<p>The <tt>javax.servlet.jsp.jstl.i18n.timeZone</tt> attribute may be set
-directly by application code for any of the JSP scopes. For example, an
-application might let its users pick their preferred time zone and then
-set the <tt>javax.servlet.jsp.jstl.i18n.timeZone
-</tt>attribute accordingly.
-Alternatively, the <tt>&lt;timeZone></tt> action may be used to set the
-<tt>javax.servlet.jsp.jstl.i18n.timeZone</tt>
-attribute for the current page context. This may be useful in the case
-where a client's preferred time zone is retrieved from a database (using
-the JSTL database tags) and imported into the page using the <tt>&lt;timeZone></tt>
-tag.
-<p>The <tt>javax.servlet.jsp.jstl.i18n.timeZone </tt>attribute is searched
-in the page, request, session (if valid), and application scope(s) (in
-this order). If not found, the JSP container's time zone is used.
-<h3>
-5. &lt;locale></h3>
-The <tt>&lt;locale></tt> action is used to set or override the JSP attribute
-<tt>javax.servlet.jsp.jstl.i18n.locale</tt>
-with the locale specified by the <tt>value</tt> attribute in the scope
-given by the <tt>scope</tt> attribute (default: "page").
-<p>The locale specified by the <tt>value</tt> attribute must contain a
-two-letter (lower-case) language code (as defined by ISO-639), and may
-contain a two-letter (upper-case) country code (as defined by ISO-3166)<tt>.
-</tt>Language
-and country codes must be separated by hyphen ('-') or underscore ('_').
-<p>Optionally, a (vendor- or browser-specific) variant may be specified
-using the <tt>variant</tt> attribute. See the <tt>java.util.Locale</tt>
-javadocs for more information on variants.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:locale value="en-US" variant="UNIX"/></tt>
-<p>By using this action, the browser-sensing capabilities for locales described
-in Section 2 of this functional description are disabled. This means that
-if this action is being used, it should be declared at the beginning of
-a page, before any other I18N/Formatting tags. Otherwise, a different locale
-might be used up to the position in the page where the <tt>&lt;locale></tt>
-action is specified.
-<h3>
-6. &lt;timeZone></h3>
-The <tt>&lt;timeZone></tt> action establishes the time zone (specified
-via the <tt>value</tt> attribute) to be used by any nested <tt>&lt;formatDate></tt>
-actions:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:timeZone value="America/Los_Angeles"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate type="time"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:timeZone></tt>
-<p>The time zone may be specified as either an abbreviation (such as "PST"),
-a full name (such as "America/Los_Angeles"), or a custom format (such as
-"GMT-8:00). See
-<tt>java.util.TimeZone.getTimeZone()
-</tt>for more details
-on the supported time zone formats.
-<p>The <tt>var</tt> attribute may be used to expose the time zone as a
-JSP-scoped attribute of type <tt>java.util.TimeZone
-</tt>(with visibility
-<tt>AT_END</tt>),
-so that it can be referenced by any subsequent
-<tt>&lt;formatDate></tt>
-actions that are not nested inside a <tt>&lt;timeZone></tt> action and
-take a <tt>timeZone</tt> attribute:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:timeZone value="America/Los_Angeles"
-var="losAngelesTimeZone"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate type="time" timeZone="$losAngelesTimeZone"/></tt>
-<p>A <tt>&lt;timeZone></tt> action that is specified without a body and
-without the <tt>var</tt> attribute can be used to set or override the
-<tt>javax.servlet.jsp.jstl.i18n.timeZone</tt>
-attribute in the scope given by the <tt>scope</tt> attribute (default:
-"page"), thereby making its time zone the (new) default in that scope:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:timeZone value="America/Los_Angeles"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate type="time"/></tt>
-<h3>
-7. &lt;bundle></h3>
-The <tt>&lt;bundle> </tt>action loads the resource bundle whose base name
-is specified via the <tt>basename</tt> attribute:
-<p>&nbsp;<tt>&nbsp;&nbsp; &lt;fmt:bundle basename="com.acme.labels.ButtonLabels"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;user-of-bundle/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:bundle></tt>
-<p>The resource bundle's locale is determined according to Section 2 of
-this functional description.
-<p>The <tt>var</tt> attribute may be used to expose the resource bundle
-as a JSP-scoped attribute of type <tt>java.util.ResourceBundle
-</tt>(with
-visibility <tt>AT_END</tt>), so that it can be referenced by any subsequent
-<tt>&lt;message></tt>
-actions that take a <tt>bundle</tt> attribute:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="com.acme.labels.ButtonLabels"
-var="buttonLabels"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Submit" bundle="$buttonLabels"/></tt>
-<p>Exposing a resource bundle via the <tt>var</tt> attribute is useful
-if the bundle needs to be accessed multiple times.
-<p>A <tt>&lt;bundle></tt> action that is specified without a body and without
-the <tt>var</tt> attribute can be used to set or override the <tt>javax.servlet.jsp.jstl.i18n.basename</tt>
-attribute in the scope given by the <tt>scope</tt> attribute (default:
-"page"), thereby making its base name the (new) default in that scope:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="com.acme.labels.ButtonLabels"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Submit"/></tt>
-<p>The <tt>prefix</tt> attribute is provided as a convenience for very
-long key names: Its value is prepended to any message key (see the <tt>&lt;message></tt>
-action) that is to be looked up in the resource bundle that was loaded
-by this action.
-<h3>
-8. &lt;message></h3>
-The <tt>&lt;message></tt> action retrieves the localized message corresponding
-to the message key specified by the
-<tt>key</tt> attribute.
-<p>The resource bundle in which to look up the message key may be given
-by the <tt>bundle</tt> attribute. If this attribute is missing, and the
-<tt>&lt;message>
-</tt>action
-is nested inside a <tt>&lt;bundle></tt> tag, the resource bundle to use
-is taken from the enclosing <tt>&lt;bundle></tt> tag. Otherwise, the resource
-bundle with the default base name given by the
-<tt>javax.servlet.jsp.jstl.i18n.basename
-</tt>attribute
-is used,&nbsp; which is searched in the page, request, session (if valid),
-and application scope(s) (in this order).
-<p>The <tt>&lt;message></tt> action outputs its result to the current
-<tt>JspWriter</tt>
-object, unless the <tt>var</tt> attribute is specified, in which case the
-result is stored in the named JSP attribute.
-<p>Example:
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <tt>&lt;fmt:message key="Welcome"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;%-- Key is looked up in default bundle --%></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="Errors" var="errorBundle"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="Greetings"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Welcome"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;%-- Key is looked up in parent &lt;bundle> tag --%></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="WrongPassword"
-bundle="$errorBundle"/>&nbsp; &lt;%-- Key is looked up in errorBundle --%></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:bundle></tt>
-<p>If the given key is not found in the resource bundle, or a resource
-bundle with the given base name does not exist, a message is logged to
-the servlet context, and an error message of the form <tt>"???&lt;key>???"</tt>
-(where
-<tt>&lt;key></tt> is the name of the undefined key) is output to
-the current <tt>JspWriter
-</tt>object.
-<p>If the message corresponding to the given key is <i>compound</i>, that
-is, contains one or more variables, it can be supplied with argument values
-for these variables by using a <tt>&lt;messageArg></tt> subtag for each
-argument value. This procedure is referred to as <i>parametric replacement.</i>
-If the message is compound, but no <tt>&lt;messageArg></tt> subtags are
-given, the message is left unmodified.
-<p>If the parent <tt>&lt;bundle></tt> action specifies a <tt>prefix</tt>
-attribute, its value is prepended to any key names to be looked up in that
-bundle. For example, using the <tt>prefix</tt> attribute, the key names
-in:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="Labels"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="com.acme.labels.firstName"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="com.acme.labels.lastName"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:bundle></tt>
-<p>may be abbreviated to:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="Labels" prefix="com.acme.labels."></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="firstName"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="lastName"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:bundle></tt>
-<h3>
-9. &lt;messageFormat></h3>
-The <tt>&lt;messageFormat> </tt>action performs parametric replacement
-on the pattern string specified via the <tt>value</tt> attribute, using
-the runtime's default locale.
-<p>The argument values for parametric replacement must be supplied via
-<tt>&lt;messageArg></tt>
-subtags. Each <tt>&lt;messageArg></tt> subtag replaces one parameter in
-the pattern. Parametric replacement takes place in the order of the
-<tt>&lt;messageArg></tt>
-subtags. If no <tt>&lt;messageArg></tt> subtag is given, the specified
-pattern is left unmodified.
-<p>The result is output to the current <tt>JspWriter</tt> object, unless
-the <tt>var</tt> attribute is given, in which case it is stored in the
-named JSP attribute.
-<p>The <tt>&lt;messageFormat></tt> action is useful if a pattern needs
-to be supplied from sources other than resource bundles, or if a pattern
-extracted from a resource bundle needs to be used multiple times.
-<p>For example, when displaying a list of products, the same internationalized
-message (pattern) would be used to display the price, but rather than looking
-up the same pattern for every single product, the pattern could be looked
-up once (using the <tt>&lt;message></tt> action) and then passed in to
-the <tt>&lt;messageFormat></tt> action for each product, as follows:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="..." var="i18n"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="store.product.price" bundle="$i18n"
-var="priceMsg"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;c:forEach ...></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... &lt;fmt:messageFormat value="$priceMsg">...&lt;/fmt:messageFormat></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/c:forEach></tt>
-<p>instead of the less efficient alternative:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="..." var="i18n"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;c:forEach ...></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... &lt;fmt:message key="store.product.price"
-bundle="$i18n">...&lt;/fmt:message></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/c:forEach></tt>
-<h3>
-10. &lt;messageArg></h3>
-The <tt>&lt;messageArg></tt> action provides one argument (for parametric
-replacement) to the compound message or pattern in its parent
-<tt>&lt;message></tt>
-or <tt>&lt;messageFormat></tt> action, respectively.
-<p>One <tt>&lt;messageArg> </tt>action must be specified for each variable
-in the compound message or pattern. Parametric replacement takes place
-in the order of the <tt>&lt;messageArg></tt> tags.
-<p>The argument value can be specified either via the <tt>value</tt> attribute:
-<pre>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Welcome">
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:messageArg value="$dateArg"/>
-&nbsp;&nbsp;&nbsp; &lt;/fmt:message></pre>
-or inline via the tag's body content:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Welcome"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:messageArg></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;acme:doIt .../></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fmt:messageArg></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:message></tt>
-<h3>
-11. &lt;formatNumber></h3>
-The <tt>&lt;formatNumber></tt> action allows the formatting of numbers,
-currencies, and percentages, using predefined or customized formatting
-styles.
-<p>Depending on the value of the <tt>type</tt> attribute, which must be
-one of "number", "currency", or "percent" (default: "number"), the numeric
-value specified by the <tt>value</tt> attribute is formatted as a number,
-currency, or percentage, respectively, using the default formatting pattern
-for numbers (currencies, percentages) of the page's locale, which is determined
-according to Section 2 of this functional description.
-<p>The result is output to the current
-<tt>JspWriter</tt> object, unless
-the <tt>var</tt> attribute is given, in which case it is stored (as a string)
-in the named JSP attribute.
-<p>Example: The output of
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatNumber value="9876543.21" type="currency"/></tt>
-<p>varies with the page's locale (given in parentheses), as follows:
-<p><tt>&nbsp;&nbsp;&nbsp; 9 876 543,21 F&nbsp;&nbsp; (fr_FR)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; 9.876.543,21 DM&nbsp; (de_DE)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; $9,876,543.21&nbsp;&nbsp;&nbsp; (en_US)</tt>
-<p>When formatting the given value as a number, the predefined formatting
-pattern of the page's locale can be overridden by using the <tt>pattern</tt>
-attribute, allowing page authors to control the display of leading and
-trailing zeros, prefixes and suffixes, grouping (thousands) separators,
-and the decimal separator of the formatted number. The given pattern string
-must follow the <a href="http://java.sun.com/docs/books/tutorial/i18n/format/numberpattern.html">Number
-Format Pattern Syntax&nbsp;</a> specified in the tutorial trail on internationalization
-at <tt>java.sun.com</tt>.
-<p>For example, a pattern of ".000" will cause any numeric value formatted
-with it to be represented with 3 fraction digits, adding trailing zeros
-if necessary, so that
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatNumber value="12.3" pattern=".000"/></tt>
-<p>will output "12.300".
-<p>Likewise, a pattern of "#,#00.0#" specifies that any numeric value formatted
-with it will be represented with a minimum of 2 integer digits, 1 fraction
-digit, and a maximum of 2 fraction digits, with every 3 integer digits
-grouped. Applied to "123456.7891", as in:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/></tt>
-<p>the formatted output will be "123,456.79" (note that rounding is handled
-automatically).
-<p>The <tt>value</tt> and <tt>pattern</tt> attributes accept both string
-literals and EL values. If the input to the <tt>value</tt> attribute is
-a string literal, it is first parsed into an instance of <tt>java.lang.Number
-</tt>according
-to the default pattern of the page's locale. If the numeric string uses
-a format different from the locale's default, it must be parsed using the
-<tt>&lt;parseNumber></tt>
-action.
-<p>The <tt>type</tt> attribute accepts (case-insensitive) literals only,
-causing an error at translation-time validation if the specified literal
-is illegal.
-<p>The <tt>pattern</tt> attribute may be used only when formatting numbers
-(that is, if the <tt>type</tt> attribute is missing or is equal to "number").
-Using it with a <tt>type</tt> attribute equal to "currency" or "percent"
-causes a translation-time error.
-<h3>
-12. &lt;parseNumber></h3>
-The <tt>&lt;parseNumber></tt> action is used for parsing numbers, currencies,
-and percentages.
-<p>Depending on the value of the <tt>type</tt> attribute, which must be
-one of "number", "currency", or "percent" (default: "number"), the string
-specified via the <tt>value</tt> attribute is parsed as a number, currency,
-or percentage, respectively, using the default formatting pattern for numbers
-(currencies, percentages) of the page's locale, which is determined according
-to Section 2 of this functional description.
-<p>If the number specified via the <tt>value</tt> attribute uses a format
-different from the page locale's default, the pattern required to parse
-it may be specified using the <tt>pattern</tt> attribute.
-<p>If the <tt>var</tt> attribute is given, the parsing result (of type
-<tt>java.lang.Number</tt>)
-is stored in the named JSP attribute.&nbsp; Otherwise, it is output to
-the current <tt>JspWriter</tt> object using <tt>java.lang.Number.toString()</tt>.
-<p>The <tt>value</tt> and <tt>pattern</tt> attributes accept both literals
-and EL values, whereas the <tt>type</tt> attribute accepts (case-insensitive)
-literals only, causing an error at translation-time validation if the specified
-literal is illegal.
-<p>The <tt>pattern</tt> attribute may be used only when parsing numbers
-(that is, if the <tt>type</tt> attribute is missing or equals "number").
-Using it with a <tt>type</tt> attribute equal to "currency" or "percent"
-causes a translation-time error.
-<h3>
-13. &lt;formatDate></h3>
-The <tt>&lt;formatDate</tt>> action allows the formatting of dates and
-times using predefined or customized formatting styles.
-<p>Depending on the value of the <tt>type</tt> attribute, which must be
-one of "time", "date", or "both" (default: "date"), only the time, the
-date, or both the time and date components of the date specified via the
-<tt>value</tt>
-attribute are formatted, using one of the predefined formatting styles
-for dates (specified via the <tt>dateStyle</tt> attribute) and times (specified
-via the <tt>timeStyle</tt> attribute) of the page's locale, which is determined
-according to Section 2 of this functional description.&nbsp; Legal values
-for the
-<tt>dateStyle</tt> and <tt>timeStyle</tt> attributes are "default",
-"short", "medium ", "long", and "full" (default: "default").
-<p>If the <tt>value</tt> attribute is missing, the current date and time
-are used.
-<p>Any time information is represented in the time zone given by the <tt>timeZone</tt>
-attribute.&nbsp; If this attribute is missing, and the <tt>&lt;formatDate>
-</tt>action
-is nested inside a <tt>&lt;timeZone></tt> tag, the time zone to use is
-taken from the enclosing <tt>&lt;timeZone></tt> tag. Otherwise, the default
-time zone given by the <tt>javax.servlet.jsp.jstl.i18n.timeZone</tt> attribute
-is used, which is searched in the page, request, session (if valid), and
-application scope(s) (in this order). If not found, the JSP container's
-time zone is used.
-<p>The action's result is output to the current <tt>JspWriter</tt> object,
-unless the <tt>var</tt> attribute is given, in which case it is stored
-(as a string) in the named JSP attribute.
-<p>Example: Assuming a current date of Oct 22, 2001 and a current time
-of 4:05:53 PM,
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate timeStyle="long" dateStyle="long"/></tt>
-<p>will output
-<p><tt>&nbsp;&nbsp;&nbsp; October 22, 2001 4:05:53 PM PDT</tt>
-<p>for the U.S. and
-<p><tt>&nbsp;&nbsp;&nbsp; 22 octobre 2001 16:05:53 GMT-07:0</tt>
-<p>for the French locale.
-<p>Page authors may also apply a customized formatting style for their
-times and dates by specifying the <tt>pattern</tt> attribute. The specified
-formatting pattern must use the <a href="http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html">Date
-Format Pattern Syntax</a> specified in the tutorial trail on internationalization
-at <tt>java.sun.com</tt>.
-<p>Example: Assuming the same current date and time as in the above example,
-the output of
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate pattern="EEE, MMM d, ''yy"/></tt>
-<p>will be
-<p><tt>&nbsp;&nbsp;&nbsp; Mon, Oct 22, '01</tt>
-<p>for the U.S. locale.
-<p>The <tt>value</tt> and <tt>pattern</tt> attributes accept both string
-literals and EL values (which must evaluate to objects of type<tt> java.util.Date
-</tt>in
-the case of the <tt>value</tt> attribute). If the input to the
-<tt>value</tt>
-attribute is a string literal, it is first parsed into an instance of <tt>java.util.Date</tt>
-according to the default pattern of the page's locale. If the date string
-uses a different pattern, the
-<tt>&lt;parseDate></tt> action must be used.
-<p>The <tt>type</tt>, <tt>timeStyle</tt>, and <tt>dateStyle</tt> attributes
-take (case-insensitive) literals only, causing an error at translation-time
-validation if the specified literal is illegal.
-<h3>
-14. &lt;parseDate></h3>
-The <tt>&lt;parseDate></tt> action is used for parsing date and time strings.
-<p>Depending on the value of the <tt>type</tt> attribute, which must be
-one of "time", "date", or "both" (default: "date"), the date string given
-via the
-<tt>value</tt> attribute is expected to contain only a time, a
-date, or both a time and date component, respectively. It is parsed according
-to the default formatting pattern for dates and times of the page's locale,
-which is determined according to Section 2 of this functional description.
-<p>If the given date string uses a different format, the pattern required
-to parse it may be specified via the <tt>pattern</tt> attribute.
-<p>If the <tt>var</tt> attribute is given, the parsing result (of type
-<tt>java.util.Date</tt>)
-is stored in the named JSP attribute. Otherwise, it is output to the current
-<tt>JspWriter</tt>
-object using <tt>java.util.Date.toString()</tt>.
-<p>The <tt>value</tt> and <tt>pattern</tt> attributes accept both literals
-and EL values. The <tt>type</tt> attribute takes (case-insensitive) literals
-only, causing an error at translation-time validation if the specified
-literal is illegal.
-<h3>
-15. &lt;exception></h3>
-The <tt>&lt;exception</tt>> action is used to display the exception given
-by the <tt>value</tt> attribute in its localized form:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:exception value="$exception" bundle="$errorMessages"/></tt>
-<p>If no <tt>value</tt> attribute is given, and this action is used in
-an error page, the exception of the error page is used.
-<p>Developers may designate an exception as localizable by having it implement
-the <tt>javax.servlet.jsp.jstl.i18n.LocalizableException</tt> interface,
-which is defined as follows:
-<p><tt>&nbsp;&nbsp;&nbsp; public interface LocalizableException {</tt>
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Returns the
-exception's message key from which the exception's</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * localized message
-is derived via a resource bundle lookup.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String getMessageKey();</tt>
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Returns the
-arguments for parametric replacement on the exception's</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * localized message.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Object[] getMessageArgs();</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; }</tt>
-<p>If the given exception is not an instance of this interface, the <tt>&lt;exception></tt>
-action uses its fully qualified class name as the key to look up in the
-resource bundle for exception messages.
-<p>Otherwise, the <tt>&lt;exception></tt> action uses the return value
-of the exception's
-<tt>getMessageKey</tt> method as the key . If <tt>getMessageKey</tt>
-returns null, the exception's fully qualified class name is used as the
-key.
-<p>The key is looked up in the resource bundle given by the <tt>bundle</tt>
-attribute. If this attribute is missing, and the
-<tt>&lt;exception> </tt>action
-is nested inside a <tt>&lt;bundle> </tt>tag, the resource bundle to use
-is taken from the enclosing <tt>&lt;bundle></tt> tag. Otherwise, the default
-resource bundle for exception messages, whose default base name is given
-by the <tt>javax.servlet.jsp.jstl.i18n.exception.basename</tt> scoped attribute,
-is used. This attribute is searched in the page, request, session (if valid),
-and application scope(s) (in this order).
-<p>The result of looking up the key in the resource bundle is used as the
-localized exception message. If the key is not found in the resource bundle,
-or the default resource bundle for exception messages does not exist, the
-return value of the exception's
-<tt>getLocalizedMessage</tt> method is
-used as the localized exception message. If the exception is an instance
-of the <tt>LocalizableException </tt>interface, the return value of the
-excpetion's <tt>getMessageArgs</tt> method is used for parametric replacement
-on the localized exception message.
-<p>The <tt>&lt;exception></tt> action outputs the localized exception message
-to the current
-<tt>JspWriter</tt> object.
-<p>If the <tt>stackTrace</tt> attribute is given with a value of <tt>true</tt>,
-the exception's stacktrace is printed out in addition to its localized
-exception message.
-<h3>
-16. Configuration parameters</h3>
-This section discusses I18N- and formatting-related initialization parameters
-in a web application's deployment descriptor (DD) file.
-<h4>
-16.1 javax.servlet.jsp.jstl.i18n.basename</h4>
-This parameter specifies the base name of the application's default resource
-bundle, which is used if a <tt>&lt;message></tt> action does not specify
-a <tt>bundle</tt> attribute and is not nested inside a
-<tt>&lt;bundle>
-</tt>action.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;web-app></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>javax.servlet.jsp.jstl.i18n.basename&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>com.acme.MyResources&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/web-app></tt>
-<h4>
-16.2 javax.servlet.jsp.jstl.i18n.exception.basename</h4>
-This parameter specifies the base name of the application's default resource
-bundle for exception messages, which is used by the <tt>&lt;exception></tt>
-action.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;web-app></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>javax.servlet.jsp.jstl.i18n.exception.basename&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>com.acme.MyExceptionResources&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/web-app></tt>
-<h4>
-16.3 javax.servlet.jsp.jstl.i18n.fallbackLocale</h4>
-This parameter specifies the application's default fallback locale, which
-is used if browser-sensing capabilities are enabled, but none of the available
-locales for the resource bundle in question match any of the client's preferred
-locales.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;web-app></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>javax.servlet.jsp.jstl.i18n.fallbackLocale&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>fr-CA&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/web-app></tt>
-<h4>
-16.4 javax.servlet.jsp.jstl.i18n.timeZone</h4>
-This parameter specifies the application's default time zone in which any
-times and dates formatted using the <tt>&lt;formatDate></tt> action are
-represented.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;web-app></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>javax.servlet.jsp.jstl.i18n.timeZone&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>"America/Los_Angeles"&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/web-app></tt>
-<h3>
-17. Developer support</h3>
-The locale-determination logic for resource bundles described in Section
-2.1.1 is exposed as a general convenience method so it may be used by any
-tag handler implementation that needs to produce localized messages. For
-example, a tag handler's exception messages may be intended directly for
-user consumption on an error page and therefore need to be localized.
-<p>The convenience method, named <tt>getLocalizedMessage</tt> and exposed
-by the <tt>org.apache.taglibs.jstl.extra.i18n.Locale</tt> class, looks
-up a given message key in the resource bundle with a given base name (or
-the default base name), whose locale is determined according to the locale-determination
-logic described in Section 2.1.1, and optionally performs parametric replacement
-on the result of the lookup before returning it.
-<p><tt>getLocalizedMessage</tt> comes in the following overloaded flavors:
-<p>&nbsp;<tt>&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Retrieves the localized message corresponding
-to the given key.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * The given key is looked up in the resource
-bundle whose base</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * name is retrieved from the javax.servlet.jsp.jstl.i18n.basename
-scoped</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * attribute and whose locale is determined
-according to the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * algorithm described in Section 2.1.1
-of the functional description.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * If the javax.servlet.jsp.jstl.i18n.basename
-attribute is not found</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * in any of the scopes, or no resource
-bundle with that base name exists,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * or the given key is undefined in the
-resource bundle that was loaded as</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * a result of this call, the string "???&lt;key>???"
-is returned,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * where "&lt;key>" is replaced with the
-given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param pageContext the page in which
-the given key must be localized</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param key the message key to be looked
-up</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @return the localized message corresponding
-to the given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; public static String getLocalizedMessage(PageContext
-pageContext,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String key);</tt>
-<p><tt>&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Retrieves the localized message corresponding
-to the given key.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * The given key is looked up in the resource
-bundle with the given</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * base name whose locale is determined
-according to the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * algorithm described in Section 2.1.1
-of the functional description.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * If no resource bundle with the given
-base name exists,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * or the given key is undefined in the
-resource bundle that was loaded as</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * a result of this call, the string "???&lt;key>???"
-is returned,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * where "&lt;key>" is replaced with the
-given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param pageContext the page in which
-the given key must be localized</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param key the message key to be looked
-up</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param basename the resource bundle
-base name</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @return the localized message corresponding
-to the given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; public static String getLocalizedMessage(PageContext
-pageContext,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String key,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String basename);</tt>
-<p><tt>&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Retrieves the localized message corresponding
-to the given key and</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * performs parametric replacement using
-the arguments specified in the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * &lt;tt>args&lt;/tt> parameter.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * The given key is looked up in the resource
-bundle whose base</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * name is retrieved from the javax.servlet.jsp.jstl.i18n.basename
-scoped</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * attribute and whose locale is determined
-according to the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * algorithm described in Section 2.1.1
-of the functional description.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Before being returned, the result of
-the lookup undergoes parametric</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * replacement, using the arguments specified
-in the &lt;tt>args&lt;/tt></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * parameter.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * If the javax.servlet.jsp.jstl.i18n.basename
-attribute is not found</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * in any of the scopes, or no resource
-bundle with that base name exists,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * or the given key is undefined in the
-resource bundle that was loaded as</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * a result of this call, the string "???&lt;key>???"
-is returned,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * where "&lt;key>" is replaced with the
-given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param pageContext the page in which
-the given key must be localized</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param key the message key to be looked
-up</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param args the arguments for parametric
-replacement</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @return the localized message corresponding
-to the given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; public static String getLocalizedMessage(PageContext
-pageContext,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String key,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-Object[] args);</tt>
-<p><tt>&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Retrieves the localized message corresponding
-to the given key.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * The given key is looked up in the resource
-bundle with the given</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * base name whose locale is determined
-according to the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * algorithm described in Section 2.1.1
-of the functional description.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Before being returned, the result of
-the lookup undergoes parametric</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * replacement, using the arguments specified
-in the &lt;tt>args&lt;/tt></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * parameter.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * If no resource bundle with the given
-base name exists,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * or the given key is undefined in the
-resource bundle that was loaded as</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * a result of this call, the string "???&lt;key>???"
-is returned,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * where "&lt;key>" is replaced with the
-given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param pageContext the page in which
-the given key must be localized</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param key the message key to be looked
-up</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param args the arguments for parametric
-replacement</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param basename the resource bundle
-base name</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @return the localized message corresponding
-to the given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; public static String getLocalizedMessage(PageContext
-pageContext,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String key,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-Object[] args,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String basename);</tt>
-<h3>
-18. Summary</h3>
-
-<table BORDER CELLPADDING=5 >
-<tr>
-<td COLSPAN="2" BGCOLOR="#000099"><b><font color="#FFFFFF"><font size=+1>I18N
-Tags</font></font></b></td>
-</tr>
-
-<tr BGCOLOR="#FFFF66">
-<td WIDTH="318"><b>Element</b></td>
-
-<td WIDTH="392"><b>Sample usage</b></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;locale></tt></b>
-<br><tt><font color="#000000"><b>value </b>variant scope</font></tt>
-<p>Establishes the locale specified by the <tt>value</tt> attribute for
-the variant given by the <tt>variant</tt> attribute.</td>
-
-<td WIDTH="392"><tt>&lt;fmt:locale value="en-US" variant="UNIX"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;timeZone></tt></b>
-<br><tt><font color="#000000"><b>value </b>var scope</font></tt>
-<p>Establishes the time zone given by the <tt>value</tt> attribute.</td>
-
-<td WIDTH="392"><tt>&lt;fmt:timeZone value="America/Los_Angeles"></tt>
-<br><tt>&nbsp; &lt;fmt:formatDate type="time"/></tt>
-<br><tt>&lt;/fmt:timeZone></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;bundle></tt></b>
-<br><tt><font color="#000000"><b>basename </b>prefix var scope</font></tt>
-<p>Loads the resource bundle whose base name is specified by the <tt>basename</tt>
-attribute, and optionally exposes it in the named scoped attribute.</td>
-
-<td WIDTH="392"><tt>&lt;fmt:bundle basename="Greetings" var="greetingBundle"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;message></tt></b>
-<br><tt><font color="#000000"><b>key </b>bundle var scope</font></tt>
-<p>Fetches the localized message corresponding to the key specified by
-the <tt>key</tt> attribute from the resource bundle given by the <tt>bundle</tt>
-attribute, and performs parametric replacement on the retrieved message
-using the argument values supplied via <tt>&lt;messageArg></tt> subtags</td>
-
-<td WIDTH="392"><tt>&lt;fmt:message key="Welcome" bundle="$greetingBundle"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;messageFormat></tt></b>
-<br><tt><font color="#000000"><b>value</b> var scope</font></tt>
-<p>Performs parametric replacement on the pattern specified by the <tt>value</tt>
-attribute using the argument values supplied via <tt>&lt;messageArg></tt>
-subtags</td>
-
-<td WIDTH="392"><tt>&lt;fmt:messageFormat value="$priceMsg"></tt>
-<br><tt>&nbsp; &lt;fmt:messageArg value="$priceArg"/></tt>
-<br><tt>&lt;/fmt:messageFormat></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;messageArg></tt></b>
-<br><tt><font color="#000000">value</font></tt>
-<p>Supplies the argument specified by the <tt>value</tt> attribute&nbsp;
-(if present) or the tag body to its parent <tt>&lt;message></tt> action
-for parametric replacement</td>
-
-<td WIDTH="392"><tt>&lt;fmt:message key="Welcome" bundle="$greetingBundle">&nbsp;</tt>
-<br><tt>&nbsp; &lt;fmt:messageArg value="$dateArg"/></tt>
-<br><tt>&lt;/fmt:message></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;formatNumber></tt></b>
-<br><tt><font color="#000000"><b>value </b>type pattern var scope</font></tt>
-<p><font color="#000000">Formats the given numeric value as a number, currency,
-or percentage using the locale's predefined or the specified (customized)
-formatting pattern&nbsp;</font></td>
-
-<td WIDTH="392"><tt>&lt;fmt:formatNumber value="9876543.21" type="currency"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;parseNumber></tt></b>
-<br><tt><font color="#000000"><b>value </b>type<b> </b>pattern var scope</font></tt>
-<p><font color="#000000">Parses the given numeric string using the locale's
-default or the specified (customized) formatting pattern</font></td>
-
-<td WIDTH="392"><tt>&lt;fmt:parseNumber value="$num" var="parsed"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;formatDate></tt></b>
-<br><tt><font color="#000000"><b>value </b>type dateStyle timeStyle pattern
-timeZone var scope</font></tt>
-<p><font color="#000000">Formats the given date using the locale's predefined
-or the specified (customized) formatting pattern&nbsp;</font></td>
-
-<td WIDTH="392"><tt>&lt;fmt:formatDate timeStyle="long" dateStyle="long"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;parseDate></tt></b>
-<br><tt><font color="#000000"><b>value</b> type pattern var scope</font></tt>
-<p><font color="#000000">Parses the given date string using the locale's
-default or the specified (customized) formatting pattern</font></td>
-
-<td WIDTH="392"><tt>&lt;fmt:parseDate value="May 22, 2001 4:05:53 PM PDT"
-var="parsed"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;exception></tt></b>
-<br><tt><font color="#000000">value bundle stackTrace</font></tt>
-<p><font color="#000000">Displays the exception given by the <tt>value</tt>
-attribute (or the error page's exception if no <tt>value</tt> attribute
-is given) in its localized form</font></td>
-
-<td WIDTH="392"><tt>&lt;fmt:exception bundle="$errorMessages"/></tt></td>
-</tr>
-</table>
-
-</body>
-</html>
diff --git a/doc/web/I18N_FunctionalDescription_6_EA3.html b/doc/web/I18N_FunctionalDescription_6_EA3.html
deleted file mode 100644
index 1577bf0..0000000
--- a/doc/web/I18N_FunctionalDescription_6_EA3.html
+++ /dev/null
@@ -1,1208 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.76C-CCK-MCD Netscape [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
-   <title>I18N -- Functional Description</title>
-<style media="screen" type="text/css"><!--
-.fixme { color: red }
---></style>
-</head>
-<body bgcolor="#FFFFFF">
-
-<h3>
-
-<hr width="100%" noshade></h3>
-
-<h2>
-I18N-Capable Formatting Tags: Functional Description</h2>
-
-<h2>
-<tt>&lt;fmt:locale><br>
-&lt;fmt:timeZone><br>
-&lt;fmt:bundle><br>
-&lt;fmt:message><br>
-&lt;fmt:messageFormat><br>
-&lt;fmt:messageArg><br>
-&lt;fmt:formatNumber><br>
-&lt;fmt:parseNumber><br>
-&lt;fmt:formatDate><br>
-&lt;fmt:parseDate><br>
-&lt;fmt:exception><br>
-&lt;fmt:requestEncoding></tt></h2>
-
-<hr width="100%" noshade>
-<h3>
-1. Introduction</h3>
-With the explosion of application development based on web technologies,
-and the deployment of such applications on the Internet, applications must
-be able to adapt to the languages and formatting conventions of their clients.
-This means that page authors must be able to tailor any locale-specific
-page content according to the conventions of the client's language and
-cultural formatting conventions. For example, the number <tt>345987.246
-</tt>should
-be formatted as <tt>345 987,246 </tt>for French, <tt>345.987,246
-</tt>for
-German, and <tt>345,987.246</tt><i> </i>for clients<i> </i>in the U.S.
-<p>The process of designing an application (or page content) so that it
-can be adapted to various languages and regions without requiring any engineering
-changes is known as <i>internationalization</i>, or I18N for short. Once
-a web application has been internationalized, it can be adapted for a number
-of regions or languages by adding locale-specific components and translating
-text. This process is known as <i>localization</i>.
-<p>There are two approaches to internationalizing a web application:
-<ul>
-<li>
-Provide a version of the JSP in each of the target locales and have a controller
-servlet dispatch the request to the appropriate page (depending on the
-requested locale). This approach is useful if large amounts of data on
-a page or an entire web application need to be internationalized.</li>
-
-<li>
-Isolate any locale-sensitive data on a page (such as error messages, string
-literals, or button labels) into resource bundles, and access the data
-via I18N tags, so that the corresponding translated message is fetched
-automatically and inserted into the page.</li>
-</ul>
-This proposal supports both approaches. It defines two sets of<font size=+0>
-tags: I18N tags, whose purpose is to assist page authors with creating
-internationalized page content that can be localized into any locale available
-in the JSP container&nbsp; (this addresses the second approach), and formatting
-tags, which allow various data elements such as numbers, currencies, dates
-and times to be formatted and parsed in a locale-sensitive or customized
-manner (this may be used in either approach).</font>
-<h3>
-2. Locale selection</h3>
-JSTL supports both browser- and application-based locales, which are discussed
-in more detail.
-<h4>
-2.1 Browser-based locales</h4>
-By default, browser-sensing capabilities for locales are enabled. This
-means that the client determines (via its browser settings) which locale
-to use, and allows page authors to cater to the language preferences of
-their clients. For example, a shopping application may want to greet its
-customers in their language, and it may even want to label its GUI components
-in that language (for example, a cancel button would be labelled
-<tt>Cancel</tt>&nbsp;
-for English and <tt>Abbrechen</tt> for German speaking customers).
-<p>Any action that requires a locale first calls the <tt>ServletRequest.getLocales()</tt>
-method on the incoming request, which provides a list, in order of preference,
-of the locales that the client wants to use. This list is processed differently
-depending on whether the action is an I18N or a formatting tag.
-<h5>
-2.1.1 Resource bundle locale</h5>
-Any I18N actions that acquire a resource bundle based on its base name
-(that is, the <tt>&lt;bundle></tt> action which (always) takes a <tt>basename</tt>
-attribute and the <tt>&lt;message></tt> action which may use the default
-resource bundle base name defined by the <tt>javax.servlet.jsp.jstl.i18n.basename
-</tt>attribute)
-determine the best matching locale by comparing the list of client locales
-against the list of available locales for the resource bundle in question,
-as follows:
-<p>For each of the client's preferred locales (in order of preference),
-the action checks if there is a matching locale for the resource bundle
-in question, by passing the resource bundle's base name and the client's
-requested locale to the <tt>java.util.ResourceBundle.getBundle()</tt> method.
-<p><tt>ResourceBundle.getBundle()</tt> implements the following search
-algorithm for resource bundles: It first appends the name of the requested
-client locale to the given base name and searches for a resource bundle
-with that name. A resource bundle may be backed by a class or a properties
-file. If no resource bundle with that name exists (and the requested locale
-has both a language and a country component), <tt>ResourceBundle.getBundle()</tt>
-appends just the requested locale's language name to the given base name
-and searches for a resource bundle with that name. If no resource bundle
-with that name exists, and the requested locale differs from the default
-locale of the container's Java runtime, <tt>ResourceBundle.getBundle()
-</tt>continues
-the search by appending the name of the container's default locale to the
-given base name. If no resource bundle with that name exists (and the container's
-default locale has both a language and a country component),
-<tt>ResourceBundle.getBundle()</tt>
-appends just the language component of the container's default locale to
-the given base name. If there still is no match, <tt>ResourceBundle.getBundle()</tt>
-searches for a resource bundle with just the given base name (without any
-locale name appended to it). If there still is no match, <tt>ResourceBundle.getBundle()
-</tt>raises
-a <tt>MissingResourceException</tt>, which is caught by the action's tag
-handler implementation and interpreted as if the resource bundle with the
-given base name does not exist for the requested client locale.
-<p>As a result of this search algorithm for resource bundles, the locale
-of the resource bundle returned by <tt>ResourceBundle.getBundle()
-</tt>may
-either match both the country and language components of the requested
-locale ("exact match"), only its language ("language match"), or neither
-(depending on the container's default locale). Note that the locale of
-the returned resource bundle may not even have any language and country
-components. An exact match may exist only if the client's preferred locale
-specifies a country.
-<p>If there is an exact match, it is used, and no further client locales
-are checked. Otherwise, all remaining client locales are checked, and the
-first language match is used. If no such match exists, the fallback locale
-from the <tt>javax.servlet.jsp.jstl.i18n.fallbackLocale</tt> scoped attribute,
-which is searched in the page, request, session (if valid), and application
-scope(s) (in this order), or context configuration parameter (see Section
-17.2) is used. If no fallback locale has been specified, the default locale
-of the container's Java runtime is used. If no resource bundle (with the
-given base name) exists for the fallback or the container's default locale,
-an error message of the form <tt>"???&lt;key>???"</tt> (where
-<tt>&lt;key></tt>
-is the name of the message key to be looked up) is returned (see Section
-8).
-<p>The behavior is implementation-defined if the set of available resource
-bundles changes during execution of the page. Implementations may thus
-cache the best matching locale for a given resource bundle when one is
-found.
-<p>The following example assumes that a message key needs to be looked
-up in a resource bundle with base name "MyResources" which is available
-only in the US-English ("en-US") locale. Furthermore, it assumes that the
-client's only preferred locale is British-English ("en_UK"). Passing the
-requested base name ("MyResources") along with the preferred locale ("en-UK")
-to the <tt>ResourceBundle.getBundle()</tt> method will result in the following
-search order of resource bundles, assuming that the container's default
-locale is set to English ("en"):
-<p><tt>&nbsp;&nbsp;&nbsp; (class) MyResources_en_UK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(exact match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (file)&nbsp; MyResources_en_UK.properties&nbsp;&nbsp;
-(exact match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (class) MyResources_en&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(language match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (file)&nbsp; MyResources_en.properties&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(language match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (class) MyResources&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(no match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (file)&nbsp; MyResources.properties&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(no match)</tt>
-<p>Since <tt>MyResources_en_US </tt>is never searched in this example,
-an error message of the form <tt>"???&lt;key>???"</tt> (see above) is returned
-to the client.
-<p>With the container's default locale set to "en-US", the complete search
-order of <tt>ResourceBundle.getBundle()</tt> will be as follows:
-<p><tt>&nbsp;&nbsp;&nbsp; (class) MyResources_en_UK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(exact match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (file)&nbsp; MyResources_en_UK.properties&nbsp;&nbsp;
-(exact match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (class) MyResources_en&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(language match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (file)&nbsp; MyResources_en.properties&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(language match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (class) MyResources_en_US&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(language match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (file)&nbsp; MyResources_en_US.properties&nbsp;&nbsp;
-(language match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (class) MyResources_en&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(language match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (file)&nbsp; MyResources_en.properties&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(language match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (class) MyResources&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(no match)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; (file)&nbsp; MyResources.properties&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-(no match)</tt>
-<p>In this case, a language match with <tt>MyResources_en_US </tt>is found,
-which is returned. Since the client did not specify any additional preferred
-locales, the message key is looked up in this resource bundle.
-<p>If the client's preferred locales were "ja", "en-UK", "en-US", "en-CA",
-and "fr"<tt> </tt>(in this order), and the available ones (for the resource
-bundle in question) were "en" and "fr", the best match would be "en". Likewise,
-if the available ones were "en", "en-US", and "fr", then the best match
-would be "en-US".
-<h5>
-2.1.2 Formatting locale</h5>
-This is the locale used by the <tt>&lt;formatNumber></tt>, <tt>&lt;parseNumber></tt>,
-<tt>&lt;formatDate></tt>,
-and <tt>&lt;parseDate></tt> formatting actions.
-<p>If the formatting action is enclosed within a <tt>&lt;bundle> </tt>action,
-the locale of the parent bundle is used as the formatting locale.
-<p>Otherwise, if the <tt>javax.servlet.jsp.jstl.i18n.basenam</tt>e attribute
-is set, the best matching locale for that base name is determined (according
-to the algorithm described in Section 2.1.1) and used as the formatting
-locale.
-<p>Otherwise, the formatting action checks, for each of the client's preferred
-locales (in order of preference), if there is a matching locale available.
-The <tt>&lt;formatNumber></tt>
-and<tt> &lt;parseNumber></tt>, and the <tt>&lt;formatDate></tt>
-and
-<tt>&lt;parseDate></tt>
-actions
-determine the available locales by calling <tt>java.text.NumberFormat.getAvailableLocales()</tt>
-and <tt>java.text.DateFormat.getAvailableLocales()</tt>, respectively.
-If there is an exact match (that is, a client's preferred locale specifies
-a country and matches both the language and country of an available locale),
-it is used, and no further client locales are checked. Otherwise, the first
-match on language is used. If no such match exists, the default locale
-of the JSP container's Java runtime is used. Once the best matching locale
-has been determined, it is cached, so that any subsequent formatting actions
-on the same page do not have to determine it again.
-<h4>
-2.2. Application-based locales</h4>
-The browser-sensing capabilities for locales may be disabled by setting
-the <tt>javax.servlet.jsp.jstl.i18n.locale</tt> scoped attribute or context
-configuration parameter (see Section 17.1). The scoped attribute is searched
-in the page, request, session (if valid), and application scope(s) (in
-this order), and may be set directly by application code for any of these
-scopes. For example, an application might let its users pick their preferred
-locale and then set the <tt>javax.servlet.jsp.jstl.i18n.locale</tt> attribute
-accordingly. Alternatively, the <tt>&lt;locale></tt> action may be used
-to set this attribute with page scope only. This may be useful in the case
-where a client's preferred locale is retrieved from a database (using the
-JSTL database tags)and installed on the page using the <tt>&lt;locale></tt>
-tag.
-<h3>
-3. Response encoding</h3>
-Any I18N-capable formatting action defined in this Functional Description
-that deals with locales sets the response's locale by calling <tt>ServletResponse.setLocale()</tt>
-with the locale determined according to the logic described in Section
-2. This assumes that the response is buffered with a big enough buffer
-size, since <tt>ServletResponse.setLocale()</tt> and <tt>ServletResponse.setContentType()</tt>
-must be called before <tt>ServletResponse.getWriter()</tt> in order for
-the specified locale or charset to affect the construction of the writer.
-<p>More specifically, the response's <tt>setLocale()</tt> method is always
-called by the <tt>&lt;locale></tt> action. In addition, it is called by
-the following actions if browser-sensing capabilities for locales are enabled
-(that is, in the absence of the <tt>javax.servlet.jsp.jstl.i18n.locale</tt>
-scoped attribute or context configuration parameter):
-<ul>
-<li>
-Any <tt>&lt;bundle></tt> action.</li>
-
-<li>
-A <tt>&lt;message></tt> action that uses the default resource bundle base
-name (defined by the <tt>javax.servlet.jsp.jstl.i18n.basename</tt> attribute).</li>
-
-<li>
-A <tt>&lt;formatNumber></tt> or <tt>&lt;formatDate></tt> action that is
-not enclosed within a <tt>&lt;bundle></tt> action.</li>
-</ul>
-After an action has called <tt>ServletResponse.setLocale()</tt>, it determines
-the character encoding associated with the locale (by calling
-<tt>ServletResponse.getCharacterEncoding()</tt>)
-and stores it in the <tt>javax.servlet.jsp.jstl.i18n.request.charset</tt>
-session attribute. This attribute may be used by the <tt>&lt;requestEncoding></tt>
-action (see Section 16) in a page invoked by a form included in the response
-to set the request charset to the same as the response charset. This makes
-it possible for the container to decode the form parameter values properly,
-since browsers typically encode form field values using the response's
-charset.
-<h3>
-4. Time zone</h3>
-The <tt>javax.servlet.jsp.jstl.i18n.timeZone </tt>JSP attribute specifies
-the time zone in which any time information formatted using the <tt>&lt;formatDate></tt>
-action is represented. This allows any time information on a page to be
-tailored to the preferred time zone of its clients, which is useful if
-the server hosting the page containing the time information and its clients
-reside in different time zones. Page authors could be advised to always
-use the "long" time format which includes the time zone, but that would
-still require clients to convert the formatted time into their own time
-zone.
-<p>The <tt>javax.servlet.jsp.jstl.i18n.timeZone</tt> attribute may be set
-directly by application code for any of the JSP scopes. For example, an
-application might let its users pick their preferred time zone and then
-set the <tt>javax.servlet.jsp.jstl.i18n.timeZone</tt>
-attribute accordingly.
-Alternatively, the <tt>&lt;timeZone></tt> action may be used to set the
-<tt>javax.servlet.jsp.jstl.i18n.timeZone</tt>
-attribute for the current page context. This may be useful in the case
-where a client's preferred time zone is retrieved from a database (using
-the JSTL database tags) and imported into the page using the <tt>&lt;timeZone></tt>
-tag.
-<p>The <tt>javax.servlet.jsp.jstl.i18n.timeZone </tt>attribute is searched
-in the page, request, session (if valid), and application scope(s) (in
-this order). If not found, the JSP container's time zone is used.
-<h3>
-5. &lt;locale></h3>
-The <tt>&lt;locale></tt> action may be used to set or override the 
-<tt>javax.servlet.jsp.jstl.i18n.locale</tt>
-scoped attribute with the locale specified by the <tt>value</tt> attribute
-in the scope given by the <tt>scope</tt> attribute (default: "page").
-<p>The locale specified by the <tt>value</tt> attribute must contain a
-two-letter (lower-case) language code (as defined by ISO-639), and may
-contain a two-letter (upper-case) country code (as defined by ISO-3166)<tt>.
-</tt>Language
-and country codes must be separated by hyphen ('-') or underscore ('_').
-<p>Optionally, a (vendor- or browser-specific) variant may be specified
-using the <tt>variant</tt> attribute. See the <tt>java.util.Locale</tt>
-javadocs for more information on variants.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:locale value="en-US" variant="UNIX"/></tt>
-<p>By using this action, the browser-sensing capabilities for locales described
-in Section 2 of this Functional Description are disabled. This means that
-if this action is being used, it should be declared at the beginning of
-a page, before any other I18N-capable formatting tags. Otherwise, a different
-locale might be used up to the position in the page where the <tt>&lt;locale></tt>
-action is specified.
-<h3>
-6. &lt;timeZone></h3>
-The <tt>&lt;timeZone></tt> action establishes the time zone (specified
-via the <tt>value</tt> attribute) to be used by any nested <tt>&lt;formatDate></tt>
-actions:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:timeZone value="America/Los_Angeles"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate type="time"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:timeZone></tt>
-<p>The time zone may be specified as either an abbreviation (such as "PST"),
-a full name (such as "America/Los_Angeles"), or a custom format (such as
-"GMT-8:00). See
-<tt>java.util.TimeZone.getTimeZone()
-</tt>for more details
-on the supported time zone formats.
-<p>The <tt>var</tt> attribute may be used to expose the time zone as a
-JSP-scoped attribute of type <tt>java.util.TimeZone</tt>
-(with visibility
-<tt>AT_END</tt>),
-so that it can be referenced by any subsequent
-<tt>&lt;formatDate></tt>
-actions that are not nested inside a <tt>&lt;timeZone></tt> action and
-take a <tt>timeZone</tt> attribute:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:timeZone value="America/Los_Angeles"
-var="losAngelesTimeZone"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate type="time" timeZone="$losAngelesTimeZone"/></tt>
-<p>An empty <tt>&lt;timeZone></tt> action that is specified without the
-<tt>var</tt>
-attribute can be used to set or override the
-<tt>javax.servlet.jsp.jstl.i18n.timeZone</tt>
-attribute in the scope given by the <tt>scope</tt> attribute (default:
-"page"), thereby making its time zone the (new) default in that scope:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:timeZone value="America/Los_Angeles"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate type="time"/></tt>
-<h3>
-7. &lt;bundle></h3>
-The <tt>&lt;bundle> </tt>action loads the resource bundle whose base name
-is specified via the <tt>basename</tt> attribute:
-<p>&nbsp;<tt>&nbsp;&nbsp; &lt;fmt:bundle basename="com.acme.labels.ButtonLabels"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;user-of-bundle/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:bundle></tt>
-<p>The resource bundle's locale is determined according to Section 2 of
-this Functional Description.
-<p>The <tt>var</tt> attribute may be used to expose the resource bundle
-as a JSP-scoped attribute of type <tt>java.util.ResourceBundle</tt>
-(with
-visibility <tt>AT_END</tt>), so that it can be referenced by any subsequent
-<tt>&lt;message></tt>
-actions that take a <tt>bundle</tt> attribute:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="com.acme.labels.ButtonLabels"
-var="buttonLabels"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Submit" bundle="$buttonLabels"/></tt>
-<p>Exposing a resource bundle via the <tt>var</tt> attribute is useful
-if the bundle needs to be accessed multiple times.
-<p>An empty <tt>&lt;bundle></tt> action that is specified without the <tt>var</tt>
-attribute can be used to set or override the <tt>javax.servlet.jsp.jstl.i18n.basename</tt>
-attribute in the scope given by the <tt>scope</tt> attribute (default:
-"page"), thereby making its base name the (new) default in that scope:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="com.acme.labels.ButtonLabels"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Submit"/></tt>
-<p>The <tt>prefix</tt> attribute is provided as a convenience for very
-long key names: Its value is prepended to any message key (see the <tt>&lt;message></tt>
-action) that is to be looked up in the resource bundle that was loaded
-by this action.
-<h3>
-8. &lt;message></h3>
-The <tt>&lt;message></tt> action retrieves the localized message corresponding
-to a given message key.
-<p>The message key may be specified via the
-<tt>key</tt> attribute; if
-missing, it is read from the tag's body content.
-<p>The resource bundle in which to look up the message key may be given
-by the <tt>bundle</tt> attribute. If this attribute is missing, and the
-<tt>&lt;message></tt>
-action
-is nested inside a <tt>&lt;bundle></tt> tag, the resource bundle to use
-is taken from the enclosing <tt>&lt;bundle></tt> tag. Otherwise, the resource
-bundle with the default base name given by the
-<tt>javax.servlet.jsp.jstl.i18n.basename
-</tt>attribute
-is used,&nbsp; which is searched in the page, request, session (if valid),
-and application scope(s) (in this order).
-<p>The <tt>&lt;message></tt> action outputs its result to the current
-<tt>JspWriter</tt>
-object, unless the <tt>var</tt> attribute is specified, in which case the
-result is stored in the named JSP attribute.
-<p>Example:
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <tt>&lt;fmt:message key="Welcome"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;%-- Key is looked up in default bundle --%></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="Errors" var="errorBundle"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="Greetings"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Welcome"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&lt;%-- Key is looked up in parent &lt;bundle> tag --%></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="WrongPassword"
-bundle="$errorBundle"/>&nbsp; &lt;%-- Key is looked up in errorBundle --%></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:bundle></tt>
-<p>If the given key is not found in the resource bundle, or a resource
-bundle with the given base name does not exist, a message is logged to
-the servlet context, and an error message of the form <tt>"???&lt;key>???"</tt>
-(where
-<tt>&lt;key></tt> is the name of the undefined key) is output to
-the current <tt>JspWriter</tt>
-object.
-<p>If the message corresponding to the given key is <i>compound</i>, that
-is, contains one or more variables, it may be supplied with argument values
-for these variables via the <tt>messageArgs</tt> attribute or one or more
-<tt>&lt;messageArg></tt>
-subtags (one for each argument value). This procedure is referred to as
-<i>parametric
-replacement.</i> Parametric replacement takes place in the order of the
-argument values given via the <tt>messageArgs</tt> attribute or the <tt>&lt;messageArg></tt>
-subtags. If the message is compound, but neither a <tt>messageArgs</tt>
-attribute nor any <tt>&lt;messageArg></tt> subtags are specified, the message
-is left unmodified. Specifying a <tt>&lt;message></tt> tag with both a
-<tt>messageArgs</tt>
-attribute and one or more <tt>&lt;messageArg></tt> subtags causes a translation
-error.
-<p>If the parent <tt>&lt;bundle></tt> action specifies a <tt>prefix</tt>
-attribute, its value is prepended to any key names to be looked up in that
-bundle. For example, using the <tt>prefix</tt> attribute, the key names
-in:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="Labels"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="com.acme.labels.firstName"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="com.acme.labels.lastName"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:bundle></tt>
-<p>may be abbreviated to:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="Labels" prefix="com.acme.labels."></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="firstName"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:message key="lastName"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:bundle></tt>
-<h3>
-9. &lt;messageFormat></h3>
-The <tt>&lt;messageFormat> </tt>action performs parametric replacement
-on a given pattern string , using the runtime's default locale.
-<p>The pattern string may be specified via the <tt>value</tt> attribute;
-if missing, it is read from the tag's body content.
-<p>The argument values for parametric replacement may be supplied via the
-<tt>messageArgs</tt>
-attribute or one or more
-<tt>&lt;messageArg></tt> subtags (one for each
-parameter in the pattern). Parametric replacement takes place in the order
-of the argument values given via the <tt>messageArgs</tt> attribute or
-the <tt>&lt;messageArg></tt> subtags. If neither a <tt>messageArgs</tt>
-attribute nor any <tt>&lt;messageArg></tt> subtags are specified, the given
-pattern is left unmodified. Specifying a <tt>&lt;messageFormat></tt> tag
-with both a <tt>messageArgs</tt> attribute and one or more <tt>&lt;messageArg></tt>
-subtags causes a translation error.
-<p>The result is output to the current <tt>JspWriter</tt> object, unless
-the <tt>var</tt> attribute is given, in which case it is stored in the
-named JSP attribute.
-<p>The <tt>&lt;messageFormat></tt> action is useful if a pattern needs
-to be supplied from sources other than resource bundles, or if a pattern
-extracted from a resource bundle needs to be used multiple times.
-<p>For example, when displaying a list of products, the same internationalized
-message (pattern) would be used to display the price, but rather than looking
-up the same pattern for every single product, the pattern could be looked
-up once (using the <tt>&lt;message></tt> action) and then passed in to
-the <tt>&lt;messageFormat></tt> action for each product, as follows:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="..." var="i18n"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="store.product.price" bundle="$i18n"
-var="priceMsg"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;c:forEach ...></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... &lt;fmt:messageFormat value="$priceMsg">...&lt;/fmt:messageFormat></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/c:forEach></tt>
-<p>instead of the less efficient alternative:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:bundle basename="..." var="i18n"/></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;c:forEach ...></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... &lt;fmt:message key="store.product.price"
-bundle="$i18n">...&lt;/fmt:message></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/c:forEach></tt>
-<h3>
-10. &lt;messageArg></h3>
-The <tt>&lt;messageArg></tt> action provides a single argument (for parametric
-replacement) to the compound message or pattern in its parent
-<tt>&lt;message></tt>
-or <tt>&lt;messageFormat></tt> action, respectively.
-<p>One <tt>&lt;messageArg> </tt>action must be specified for each variable
-in the compound message or pattern. Parametric replacement takes place
-in the order of the <tt>&lt;messageArg></tt> tags.
-<p>The argument value can be specified either via the <tt>value</tt> attribute:
-<pre>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Welcome">
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:messageArg value="$dateArg"/>
-&nbsp;&nbsp;&nbsp; &lt;/fmt:message></pre>
-or inline via the tag's body content:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:message key="Welcome"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fmt:messageArg></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;acme:doIt .../></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fmt:messageArg></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/fmt:message></tt>
-<h3>
-11. &lt;formatNumber></h3>
-The <tt>&lt;formatNumber></tt> action allows the formatting of numbers,
-currencies, and percentages, using predefined or customized formatting
-styles.
-<p>The numeric value to be formatted may be specified via the <tt>value</tt>
-attribute; if missing, it is read from the tag's body content.
-<p>Depending on the value of the <tt>type</tt> attribute, which must be
-one of "number", "currency", or "percent" (default: "number"), the given
-numeric value is formatted as a number, currency, or percentage, respectively,
-using the default formatting pattern for numbers (currencies, percentages)
-of the page's locale, which is determined according to Section 2 of this
-Functional Description.
-<p>The result is output to the current
-<tt>JspWriter</tt> object, unless
-the <tt>var</tt> attribute is given, in which case it is stored (as a string)
-in the named JSP attribute.
-<p>Example: The output of
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatNumber value="9876543.21" type="currency"/></tt>
-<p>varies with the page's locale (given in parentheses), as follows:
-<p><tt>&nbsp;&nbsp;&nbsp; 9 876 543,21 F&nbsp;&nbsp; (fr_FR)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; 9.876.543,21 DM&nbsp; (de_DE)</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; $9,876,543.21&nbsp;&nbsp;&nbsp; (en_US)</tt>
-<p>When formatting the given value as a number, the predefined formatting
-pattern of the page's locale can be overridden by using the <tt>pattern</tt>
-attribute, allowing page authors to control the display of leading and
-trailing zeros, prefixes and suffixes, grouping (thousands) separators,
-and the decimal separator of the formatted number. The given pattern string
-must follow the <a href="http://java.sun.com/docs/books/tutorial/i18n/format/numberpattern.html">Number
-Format Pattern Syntax&nbsp;</a> specified in the tutorial trail on internationalization
-at <tt>java.sun.com</tt>.
-<p>For example, a pattern of ".000" will cause any numeric value formatted
-with it to be represented with 3 fraction digits, adding trailing zeros
-if necessary, so that
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatNumber value="12.3" pattern=".000"/></tt>
-<p>will output "12.300".
-<p>Likewise, a pattern of "#,#00.0#" specifies that any numeric value formatted
-with it will be represented with a minimum of 2 integer digits, 1 fraction
-digit, and a maximum of 2 fraction digits, with every 3 integer digits
-grouped. Applied to "123456.7891", as in:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/></tt>
-<p>the formatted output will be "123,456.79" (note that rounding is handled
-automatically).
-<p>The <tt>value</tt> and <tt>pattern</tt> attributes accept both string
-literals and EL values.
-<p>If the numeric value to be formatted is given as a string literal, it
-is first parsed into an instance of <tt>java.lang.Number
-</tt>according
-to the default pattern of the locale specified by the <tt>parseLocale</tt>
-attribute. In the absence of this attribute, the English (<tt>en</tt>)
-locale is used. If the numeric string uses a pattern different from the
-parsing locale's default, it must be parsed using the
-<tt>&lt;parseNumber></tt>
-action.
-<p>The <tt>type</tt> attribute accepts (case-insensitive) literals only,
-causing an error at translation-time validation if the specified literal
-is illegal.
-<p>The <tt>pattern</tt> attribute may be used only when formatting numbers
-(that is, if the <tt>type</tt> attribute is missing or is equal to "number").
-Using it with a <tt>type</tt> attribute equal to "currency" or "percent"
-causes a translation-time error.
-<h3>
-12. &lt;parseNumber></h3>
-The <tt>&lt;parseNumber></tt> action may be used for parsing numbers, currencies,
-and percentages.
-<p>The numeric string to be parsed may be specified via the <tt>value</tt>
-attribute; if missing, it is read from the tag's body content.
-<p>Depending on the value of the <tt>type</tt> attribute, which must be
-one of "number", "currency", or "percent" (default: "number"), the given
-numeric string is parsed as a number, currency, or percentage, respectively,
-using the default formatting pattern for numbers (currencies, percentages)
-of the locale specified by the <tt>parseLocale</tt> attribute. If the <tt>parseLocale</tt>
-attribute is missing, the page's locale is used, which is determined according
-to Section 2 of this Functional Description.
-<p>If the number specified via the <tt>value</tt> attribute uses a format
-different from the page locale's default, the pattern required to parse
-it may be specified using the <tt>pattern</tt> attribute.
-<p>If the <tt>var</tt> attribute is given, the parsing result (of type
-<tt>java.lang.Number</tt>)
-is stored in the named JSP attribute.&nbsp; Otherwise, it is output to
-the current <tt>JspWriter</tt> object using <tt>java.lang.Number.toString()</tt>.
-<p>The <tt>value</tt> and <tt>pattern</tt> attributes accept both literals
-and EL values, whereas the <tt>type</tt> attribute accepts (case-insensitive)
-literals only, causing an error at translation-time validation if the specified
-literal is illegal.
-<p>The <tt>pattern</tt> attribute may be used only when parsing numbers
-(that is, if the <tt>type</tt> attribute is missing or equals "number").
-Using it with a <tt>type</tt> attribute equal to "currency" or "percent"
-causes a translation-time error.
-<h3>
-13. &lt;formatDate></h3>
-The <tt>&lt;formatDate</tt>> action allows the formatting of dates and
-times using predefined or customized formatting styles.
-<p>Depending on the value of the <tt>type</tt> attribute, which must be
-one of "time", "date", or "both" (default: "date"), only the time, the
-date, or both the time and date components of the date specified via the
-<tt>value</tt>
-attribute are formatted, using one of the predefined formatting styles
-for dates (specified via the <tt>dateStyle</tt> attribute) and times (specified
-via the <tt>timeStyle</tt> attribute) of the page's locale, which is determined
-according to Section 2 of this Functional Description.&nbsp; Legal values
-for the
-<tt>dateStyle</tt> and <tt>timeStyle</tt> attributes are "default",
-"short", "medium ", "long", and "full" (default: "default").
-<p>If the <tt>value</tt> attribute is missing, the current date and time
-are used.
-<p>Any time information is represented in the time zone given by the <tt>timeZone</tt>
-attribute.&nbsp; If this attribute is missing, and the <tt>&lt;formatDate>
-</tt>action
-is nested inside a <tt>&lt;timeZone></tt> tag, the time zone to use is
-taken from the enclosing <tt>&lt;timeZone></tt> tag. Otherwise, the default
-time zone given by the <tt>javax.servlet.jsp.jstl.i18n.timeZone</tt> attribute
-is used, which is searched in the page, request, session (if valid), and
-application scope(s) (in this order). If not found, the JSP container's
-time zone is used.
-<p>The action's result is output to the current <tt>JspWriter</tt> object,
-unless the <tt>var</tt> attribute is given, in which case it is stored
-(as a string) in the named JSP attribute.
-<p>Example: Assuming a current date of Oct 22, 2001 and a current time
-of 4:05:53 PM,
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate timeStyle="long" dateStyle="long"/></tt>
-<p>will output
-<p><tt>&nbsp;&nbsp;&nbsp; October 22, 2001 4:05:53 PM PDT</tt>
-<p>for the U.S. and
-<p><tt>&nbsp;&nbsp;&nbsp; 22 octobre 2001 16:05:53 GMT-07:0</tt>
-<p>for the French locale.
-<p>Page authors may also apply a customized formatting style for their
-times and dates by specifying the <tt>pattern</tt> attribute. The specified
-formatting pattern must use the <a href="http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html">Date
-Format Pattern Syntax</a> specified in the tutorial trail on internationalization
-at <tt>java.sun.com</tt>.
-<p>Example: Assuming the same current date and time as in the above example,
-the output of
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:formatDate pattern="EEE, MMM d, ''yy"/></tt>
-<p>will be
-<p><tt>&nbsp;&nbsp;&nbsp; Mon, Oct 22, '01</tt>
-<p>for the U.S. locale.
-<p>The <tt>value</tt> and <tt>pattern</tt> attributes accept both string
-literals and EL values (which must evaluate to objects of type<tt> java.util.Date
-</tt>in
-the case of the <tt>value</tt> attribute).
-<p>If the input to the
-<tt>value</tt> attribute is a string literal, it
-is first parsed into an instance of <tt>java.util.Date</tt> according to
-the default formatting style for dates of the parsing locale specified
-by the <tt>parseLocale</tt> attribute, that is, it is parsed in a fashion
-equivalent to using a <tt>&lt;parseDate></tt> action with <tt>type</tt>
-equal to "date" (its default value) and <tt>dateStyle</tt> equal to "default"
-(its default value). In the absence of the <tt>parseLocale</tt> attribute,
-the English (<tt>en</tt>) locale is used as the parsing locale. If the
-string in the <tt>value</tt> attribute uses a formatting style for dates
-different from the parsing locale's default, or includes a time component,
-it must first be parsed using a
-<tt>&lt;parseDate></tt> action whose parsing
-result can then be supplied to a <tt>&lt;formatDate></tt> action for formatting.
-<p>The <tt>type</tt>, <tt>timeStyle</tt>, and <tt>dateStyle</tt> attributes
-take (case-insensitive) literals only, causing an error at translation-time
-validation if the specified literal is illegal.
-<h3>
-14. &lt;parseDate></h3>
-The <tt>&lt;parseDate></tt> action may be used for parsing date and time
-strings.
-<p>The date string to be parsed may be specified via the <tt>value</tt>
-attribute; if missing, it is read from the tag's body content.
-<p>Depending on the value of the <tt>type</tt> attribute, which must be
-one of "time", "date", or "both" (default: "date"), the given date string
-is expected to contain only a time, a date, or both a time and date component,
-respectively. It is parsed according to one of the predefined formatting
-styles for dates (specified via the
-<tt>dateStyle</tt> attribute) and times
-(specified via the <tt>timeStyle</tt> attribute) of the locale specified
-by the <tt>parseLocale</tt> attribute. If the <tt>parseLocale</tt> attribute
-is missing, the page's locale is used, which is determined according to
-Section 2 of this Functional Description. Legal values for the
-<tt>dateStyle</tt>
-and <tt>timeStyle</tt> attributes are "default", "short", "medium ", "long",
-and "full" (default: "default").
-<p>If the given date string uses a different format, the pattern required
-to parse it may be specified via the <tt>pattern</tt> attribute.
-<p>If the given time information does not specify a time zone, it is interpreted
-in the time zone given by the <tt>timeZone</tt> attribute.&nbsp; If this
-attribute is missing, and the <tt>&lt;parseDate></tt>
-action is nested
-inside a <tt>&lt;timeZone></tt> tag, the time zone is taken from the enclosing
-<tt>&lt;timeZone></tt>
-tag. Otherwise, the default time zone given by the
-<tt>javax.servlet.jsp.jstl.i18n.timeZone</tt>
-attribute is used, which is searched in the page, request, session (if
-valid), and application scope(s) (in this order). If not found, the JSP
-container's time zone is used.
-<p>If the <tt>var</tt> attribute is given, the parsing result (of type
-<tt>java.util.Date</tt>)
-is stored in the named JSP attribute. Otherwise, it is output to the current
-<tt>JspWriter</tt>
-object using <tt>java.util.Date.toString()</tt>.
-<p>The <tt>value</tt> and <tt>pattern</tt> attributes accept both literals
-and EL values. The <tt>type,timeStyle</tt>, and <tt>dateStyle</tt> attributes
-take (case-insensitive) literals only, causing an error at translation-time
-validation if the specified literal is illegal.
-<h3>
-15. &lt;exception></h3>
-The <tt>&lt;exception</tt>> action may be used to display the exception
-given by the <tt>value</tt> attribute in its localized form:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;fmt:exception value="$exception" bundle="$errorMessages"/></tt>
-<p>If no <tt>value</tt> attribute is given, and this action is used in
-an error page, the exception of the error page is used.
-<p>Developers may designate an exception as localizable by having it implement
-the <tt>javax.servlet.jsp.jstl.i18n.LocalizableException</tt> interface,
-which is defined as follows:
-<p><tt>&nbsp;&nbsp;&nbsp; public interface LocalizableException {</tt>
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Returns the
-exception's message key from which the exception's</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * localized message
-is derived via a resource bundle lookup.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String getMessageKey();</tt>
-<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Returns the
-arguments for parametric replacement on the exception's</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * localized message.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Object[] getMessageArgs();</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; }</tt>
-<p>If the given exception is not an instance of this interface, the <tt>&lt;exception></tt>
-action uses its fully qualified class name as the key to look up in the
-resource bundle for exception messages.
-<p>Otherwise, the <tt>&lt;exception></tt> action uses the return value
-of the exception's
-<tt>getMessageKey()</tt> method as the key . If <tt>getMessageKey()</tt>
-returns null, the exception's fully qualified class name is used as the
-key.
-<p>The key is looked up in the resource bundle given by the <tt>bundle</tt>
-attribute. If this attribute is missing, and the
-<tt>&lt;exception></tt>
-action is nested inside a <tt>&lt;bundle></tt> tag, the resource bundle
-to use is taken from the enclosing <tt>&lt;bundle></tt> tag. Otherwise,
-the default resource bundle for exception messages, whose default base
-name is given by the <tt>javax.servlet.jsp.jstl.i18n.exception.basename</tt>
-scoped attribute, is used. This attribute is searched in the page, request,
-session (if valid), and application scope(s) (in this order).
-<p>The result of looking up the key in the resource bundle is used as the
-localized exception message. If the key is not found in the resource bundle,
-or the default resource bundle for exception messages does not exist, the
-return value of the exception's
-<tt>getLocalizedMessage()</tt> method is
-used as the localized exception message. If the exception is an instance
-of the <tt>LocalizableException </tt>interface, the return value of the
-excpetion's <tt>getMessageArgs()</tt> method is used for parametric replacement
-on the localized exception message.
-<p>The <tt>&lt;exception></tt> action outputs the localized exception message
-to the current
-<tt>JspWriter</tt> object.
-<p>If the <tt>stackTrace</tt> attribute is given with a value of <tt>true</tt>,
-the exception's stacktrace is printed out in addition to its localized
-exception message.
-<h3>
-16. &lt;requestEncoding></h3>
-The <tt>&lt;requestEncoding></tt> action may be used to set the request's
-character encoding, in order to be able to correctly decode request parameter
-values whose encoding&nbsp; is different from ISO-8859-1. This action is
-needed because browsers do not follow the HTTP specification by failing
-to include a <tt>Content-Type</tt> header in their requests.
-<p>More specifically, the purpose of the <tt>&lt;requestEncoding></tt>
-action is to set the request encoding to be the same as the response encoding
-in a page invoked by a form included in the response. This is needed because
-even if the encoding of the page that is generating the response containing
-the form is specified via the <tt>contentType</tt> attribute of a page
-directive, the response's actual locale (and thus character encoding) may
-differ from the value specified in the page directive if the page contains
-an I18N-capable formatting action which sets the response's locale (and
-thus character encoding) by calling <tt>ServletResponse.setLocale()</tt>,
-thereby overriding any encoding specified in the page directive (see Section
-3). This assumes that the JSP container calls <tt>ServletResponse.setContentType()</tt>
-(with the value of the page directive's <tt>contentType</tt> attribute,
-if present) at the beginning of the page, and that any subsequent call
-to <tt>ServletResponse.setLocale()</tt> (by any I18N-capable formatting
-action in the page) overrides the page's existing encoding, so that the
-locale (and encoding) set by the last I18N-capable formatting action in
-the page wins. (This assumes that the response is buffered with a big enough
-buffer size, since <tt>ServletResponse.setLocale()</tt> and <tt>ServletResponse.setContentType()</tt>
-must be called before <tt>ServletResponse.getWriter()</tt> in order for
-the specified locale or charset to affect the construction of the writer.)
-<p>Example:
-<p>&nbsp;&nbsp;&nbsp; <tt>&lt;fmt:requestEncoding value="Shift_JIS" /></tt>
-<p>This action calls the <tt>setCharacterEncoding()</tt> method on the
-servlet request with the character encoding name specified in the <tt>value</tt>
-attribute. It must be used before any parameters are retrieved, either
-explicitly or through the use of an EL expression.
-<p>If the character encoding of the request parameters is not known in
-advance (since the locale and thus character encoding of the page that
-generated the form collecting the parameter values was determined dynamically),
-the <tt>value</tt> attribute must not be specified. In this case, the <tt>&lt;requestEncoding></tt>
-action first checks if there is a charset defined in the request <tt>Content-Type</tt>
-header. If not, it uses the character encoding from the <tt>javax.servlet.jsp.jstl.i18n.request.charset</tt>
-attribute, which is searched in the page, request, session (if valid),
-and application scope(s) (in this order). If this attribute is not found,
-the default character encoding (ISO-8859-1) is used.
-<h3>
-17. Context configuration parameters</h3>
-This section discusses I18N- and formatting-related context configuration
-parameters that may be specified in a web application's deployment descriptor.
-<h4>
-17.1 javax.servlet.jsp.jstl.i18n.locale</h4>
-This parameter specifies the application's default locale. By specifying
-this parameter, browser-sensing capabilities for locales are disabled.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;web-app></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>javax.servlet.jsp.jstl.i18n.locale&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>fr-CA&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/web-app></tt>
-<h4>
-17.2 javax.servlet.jsp.jstl.i18n.fallbackLocale</h4>
-This parameter specifies the application's default fallback locale for
-resource bundles, which is used if browser-sensing capabilities are enabled,
-but none of the available locales for the resource bundle in question match
-any of the client's preferred locales.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;web-app></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>javax.servlet.jsp.jstl.i18n.fallbackLocale&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>fr-CA&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/web-app></tt>
-<h4>
-17.3 javax.servlet.jsp.jstl.i18n.basename</h4>
-This parameter specifies the base name of the application's default resource
-bundle, which is used if a <tt>&lt;message></tt> action does not specify
-a <tt>bundle</tt> attribute and is not nested inside a
-<tt>&lt;bundle></tt>
-action.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;web-app></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>javax.servlet.jsp.jstl.i18n.basename&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>com.acme.MyResources&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/web-app></tt>
-<h4>
-17.4 javax.servlet.jsp.jstl.i18n.exception.basename</h4>
-This parameter specifies the base name of the application's default resource
-bundle for exception messages, which is used by the <tt>&lt;exception></tt>
-action.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;web-app></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>javax.servlet.jsp.jstl.i18n.exception.basename&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>com.acme.MyExceptionResources&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/web-app></tt>
-<h4>
-17.5 javax.servlet.jsp.jstl.i18n.timeZone</h4>
-This parameter specifies the application's default time zone in which any
-times and dates formatted using the <tt>&lt;formatDate></tt> action are
-represented.
-<p>Example:
-<p><tt>&nbsp;&nbsp;&nbsp; &lt;web-app></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name>javax.servlet.jsp.jstl.i18n.timeZone&lt;/param-name></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value>"America/Los_Angeles"&lt;/param-value></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/context-param></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/web-app></tt>
-<h3>
-18. Developer support</h3>
-The locale-determination logic for resource bundles, as described in Section
-2.1.1 of this Functional Description, is exposed as a general convenience
-method so that it may be used by any tag handler implementation that needs
-to produce localized messages, e.g., exception messages that are intended
-directly for user consumption on an error page.
-<p>The convenience method, named <tt>getLocalizedMessage()</tt> and exposed
-by the <tt>org.apache.taglibs.jstl.extra.i18n.Locale</tt> class, looks
-up a given message key in the resource bundle with a given base name (or
-the default base name), whose locale is determined according to the locale-determination
-logic described in Section 2.1.1, and optionally performs parametric replacement
-on the result of the lookup before returning it.
-<p><tt>getLocalizedMessage()</tt> comes in the following overloaded flavors:
-<p>&nbsp;<tt>&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Retrieves the localized message corresponding
-to the given key.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * The given key is looked up in the resource
-bundle whose base</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * name is retrieved from the javax.servlet.jsp.jstl.i18n.basename
-scoped</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * attribute and whose locale is determined
-according to the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * algorithm described in Section 2.1.1
-of this Functional Description.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * If the javax.servlet.jsp.jstl.i18n.basename
-attribute is not found</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * in any of the scopes, or no resource
-bundle with that base name exists,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * or the given key is undefined in the
-resource bundle that was loaded as</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * a result of this call, the string "???&lt;key>???"
-is returned,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * where "&lt;key>" is replaced with the
-given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param pageContext the page in which
-the given key must be localized</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param key the message key to be looked
-up</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @return the localized message corresponding
-to the given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; public static String getLocalizedMessage(PageContext
-pageContext,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String key);</tt>
-<p><tt>&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Retrieves the localized message corresponding
-to the given key.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * The given key is looked up in the resource
-bundle with the given</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * base name whose locale is determined
-according to the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * algorithm described in Section 2.1.1
-of this Functional Description.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * If no resource bundle with the given
-base name exists,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * or the given key is undefined in the
-resource bundle that was loaded as</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * a result of this call, the string "???&lt;key>???"
-is returned,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * where "&lt;key>" is replaced with the
-given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param pageContext the page in which
-the given key must be localized</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param key the message key to be looked
-up</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param basename the resource bundle
-base name</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @return the localized message corresponding
-to the given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; public static String getLocalizedMessage(PageContext
-pageContext,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String key,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String basename);</tt>
-<p><tt>&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Retrieves the localized message corresponding
-to the given key and</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * performs parametric replacement using
-the arguments specified in the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * &lt;tt>args&lt;/tt> parameter.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * The given key is looked up in the resource
-bundle whose base</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * name is retrieved from the javax.servlet.jsp.jstl.i18n.basename
-scoped</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * attribute and whose locale is determined
-according to the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * algorithm described in Section 2.1.1
-of this Functional Description.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Before being returned, the result of
-the lookup undergoes parametric</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * replacement, using the arguments specified
-in the &lt;tt>args&lt;/tt></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * parameter.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * If the javax.servlet.jsp.jstl.i18n.basename
-attribute is not found</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * in any of the scopes, or no resource
-bundle with that base name exists,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * or the given key is undefined in the
-resource bundle that was loaded as</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * a result of this call, the string "???&lt;key>???"
-is returned,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * where "&lt;key>" is replaced with the
-given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param pageContext the page in which
-the given key must be localized</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param key the message key to be looked
-up</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param args the arguments for parametric
-replacement</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @return the localized message corresponding
-to the given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; public static String getLocalizedMessage(PageContext
-pageContext,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String key,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-Object[] args);</tt>
-<p><tt>&nbsp;&nbsp;&nbsp; /**</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Retrieves the localized message corresponding
-to the given key.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * The given key is looked up in the resource
-bundle with the given</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * base name whose locale is determined
-according to the</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * algorithm described in Section 2.1.1
-of this Functional Description.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * Before being returned, the result of
-the lookup undergoes parametric</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * replacement, using the arguments specified
-in the &lt;tt>args&lt;/tt></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * parameter.</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * If no resource bundle with the given
-base name exists,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * or the given key is undefined in the
-resource bundle that was loaded as</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * a result of this call, the string "???&lt;key>???"
-is returned,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * where "&lt;key>" is replaced with the
-given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param pageContext the page in which
-the given key must be localized</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param key the message key to be looked
-up</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param args the arguments for parametric
-replacement</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @param basename the resource bundle
-base name</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; *</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; * @return the localized message corresponding
-to the given key</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; */</tt>
-<br><tt>&nbsp;&nbsp;&nbsp; public static String getLocalizedMessage(PageContext
-pageContext,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String key,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-Object[] args,</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-String basename);</tt>
-<h3>
-19. Summary</h3>
-
-<table BORDER CELLPADDING=5 >
-<tr>
-<td COLSPAN="2" BGCOLOR="#000099"><b><font color="#FFFFFF"><font size=+1>I18N
-Tags</font></font></b></td>
-</tr>
-
-<tr BGCOLOR="#FFFF66">
-<td WIDTH="318"><b>Element</b></td>
-
-<td WIDTH="420"><b>Sample usage</b></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;locale></tt></b>
-<br><tt><font color="#000000"><b>value </b>variant scope</font></tt>
-<p>Establishes the locale specified by the <tt>value</tt> attribute for
-the variant given by the <tt>variant</tt> attribute.</td>
-
-<td WIDTH="420"><tt>&lt;fmt:locale value="en-US" variant="UNIX"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;timeZone></tt></b>
-<br><tt><font color="#000000"><b>value </b>var scope</font></tt>
-<p>Establishes the time zone given by the <tt>value</tt> attribute.</td>
-
-<td WIDTH="420"><tt>&lt;fmt:timeZone value="America/Los_Angeles"></tt>
-<br><tt>&nbsp; &lt;fmt:formatDate type="time"/></tt>
-<br><tt>&lt;/fmt:timeZone></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;bundle></tt></b>
-<br><tt><font color="#000000"><b>basename </b>prefix var scope</font></tt>
-<p>Loads the resource bundle whose base name is specified by the <tt>basename</tt>
-attribute, and optionally exposes it in the named scoped attribute.</td>
-
-<td WIDTH="420"><tt>&lt;fmt:bundle basename="Greetings" var="greetingBundle"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;message></tt></b>
-<br><tt><font color="#000000"><b>key </b>bundle messageArgs var scope</font></tt>
-<p>Fetches the localized message corresponding to the key specified by
-the <tt>key</tt> attribute from the resource bundle given by the <tt>bundle</tt>
-attribute, and performs parametric replacement on the retrieved message
-using the argument values supplied via the <tt>messageArgs</tt> attribute
-or&nbsp; <tt>&lt;messageArg></tt> subtags.</td>
-
-<td WIDTH="420"><tt>&lt;fmt:message key="Welcome" bundle="$greetingBundle"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;messageFormat></tt></b>
-<br><tt><font color="#000000"><b>value</b> messageArgs var scope</font></tt>
-<p>Performs parametric replacement on the pattern specified by the <tt>value</tt>
-attribute using the argument values supplied via <tt>&lt;messageArg></tt>
-subtags.</td>
-
-<td WIDTH="420"><tt>&lt;fmt:messageFormat value="$priceMsg"></tt>
-<br><tt>&nbsp; &lt;fmt:messageArg value="$priceArg"/></tt>
-<br><tt>&lt;/fmt:messageFormat></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;messageArg></tt></b>
-<br><tt><font color="#000000">value</font></tt>
-<p>Supplies the argument specified by the <tt>value</tt> attribute&nbsp;
-(if present) or the tag body to its parent <tt>&lt;message></tt> action
-for parametric replacement.</td>
-
-<td WIDTH="420"><tt>&lt;fmt:message key="Welcome" bundle="$greetingBundle">&nbsp;</tt>
-<br><tt>&nbsp; &lt;fmt:messageArg value="$dateArg"/></tt>
-<br><tt>&lt;/fmt:message></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;formatNumber></tt></b>
-<br><tt><font color="#000000"><b>value </b>type pattern parseLocale var
-scope</font></tt>
-<p><font color="#000000">Formats the given numeric value as a number, currency,
-or percentage using the locale's predefined or the specified (customized)
-formatting pattern.</font></td>
-
-<td WIDTH="420"><tt>&lt;fmt:formatNumber value="12345.67" parseLocale="de"
-type="currency"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;parseNumber></tt></b>
-<br><tt><font color="#000000"><b>value </b>type<b> </b>pattern parseLocale
-var scope</font></tt>
-<p><font color="#000000">Parses the given numeric string using the locale's
-default or the specified (customized) formatting pattern.</font></td>
-
-<td WIDTH="420"><tt>&lt;fmt:parseNumber value="$num" var="parsed"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;formatDate></tt></b>
-<br><tt><font color="#000000">value<b> </b>type dateStyle timeStyle pattern
-timeZone parseLocale var scope</font></tt>
-<p><font color="#000000">Formats the given (or current) date using the
-locale's predefined or the specified (customized) formatting pattern.</font></td>
-
-<td WIDTH="420"><tt>&lt;fmt:formatDate timeStyle="long" dateStyle="long"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;parseDate></tt></b>
-<br><tt><font color="#000000"><b>value</b> type dateStyle timeStyle pattern
-timeZone parseLocale var scope</font></tt>
-<p><font color="#000000">Parses the given date string using the locale's
-default or the specified (customized) formatting pattern.</font></td>
-
-<td WIDTH="420"><tt>&lt;fmt:parseDate value="May 22, 2001 4:05:53 PM PDT"
-var="parsed"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;exception></tt></b>
-<br><tt><font color="#000000">value bundle stackTrace</font></tt>
-<p><font color="#000000">Displays the exception given by the <tt>value</tt>
-attribute (or the error page's exception if no <tt>value</tt> attribute
-is given) in its localized form.</font></td>
-
-<td WIDTH="420"><tt>&lt;fmt:exception bundle="$errorMessages"/></tt></td>
-</tr>
-
-<tr>
-<td WIDTH="318"><b><tt>&lt;requestEncoding></tt></b>
-<br><tt><font color="#000000">value</font></tt>
-<p><font color="#000000">Sets the request character encoding to the charset
-specified by the <tt>value</tt> attribute.</font></td>
-
-<td WIDTH="420"><tt>&lt;fmt:requestEncoding value="Shift_JIS"/></tt></td>
-</tr>
-</table>
-
-</body>
-</html>
diff --git a/doc/web/IOT_Import_FunctionalDescription_5_EA2.html b/doc/web/IOT_Import_FunctionalDescription_5_EA2.html
deleted file mode 100644
index caa823d..0000000
--- a/doc/web/IOT_Import_FunctionalDescription_5_EA2.html
+++ /dev/null
@@ -1,357 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Import Tag -- Functional Description</title>
-<style media="screen" type="text/css"><!--
-.fixme { color: red }
---></style>
-</head>
-<body bgcolor="#FFFFFF">
-<h3> 
-  <hr width="100%" noshade>
-</h3>
-<h2> Import Tags &#151; Functional Description <br>
-</h2>
-<h2> <tt>&lt;c:import><br>
-  </tt><tt>&lt;c:param&gt;<br>
-  &lt;c:urlEncode&gt; <br>
-  </tt></h2>
-<hr width="100%" noshade>
-<h3> 1. Introduction</h3>
-<p>In the JSP specification, a &lt;jsp:include .../&gt; element provides for the 
-  inclusion of static and dynamic resources in the same context as the current 
-  page. This is a very convenient feature that is widely used by page authors. 
-</p>
-<p>However, &lt;jsp:include&gt; falls short in flexibility and efficiency when 
-  page authors need to get access to resources that reside outside of the web 
-  application, as well as when the content of the imported resource is used as 
-  the source for a companion process/transformation element. More specifically:</p>
-<blockquote> 
-  <p><b>Limited to web-app resources</b></p>
-  <p>&lt;jsp:include&gt; only supports the inclusion of resources within the same 
-    web application. In many situations, page authors have the need to import 
-    the content of internet resources specified via an absolute URL. Moreover, 
-    as sites grow in size, they may have to be implemented as a set of web applications 
-    where importing resources across web-applications is a requirement.</p>
-  <p><b>Unnecessary buffering when the resource included is fed into another element 
-    </b> </p>
-  <p>In the example below, the &lt;transform&gt; element uses the content of the 
-    included resource as the input of its transformation. The &lt;jsp:include&gt; 
-    reads the content of the response, writes it to the body content of the enclosing 
-    &lt;transform&gt; element, which then re-reads the exact same content. It 
-    would be more efficient if the &lt;transform&gt; element could access the 
-    input source directly and avoid the buffering involved in the body content 
-    of the &lt;transform&gt; tag.</p>
-  <pre>&nbsp; &lt;acme:transform&gt;
-&nbsp;     &lt;jsp:include page=&quot;/exec/employeesList&quot;/><br>&nbsp; &lt;acme:transform/></pre>
-</blockquote>
-<p>The &lt;import&gt; tag has been designed to address the above shortcomings.</p>
-<h3>2. &lt;import&gt;</h3>
-<p>There is a wide variety of resources that a page author might be interested 
-  in including and/or processing within a JSP page. For instance, the example 
-  below shows how the content of the README file at the ftp site of acme.com could 
-  be included within the page.</p>
-<blockquote> 
-  <p><code>&lt;c:import url=&quot;ftp://ftp.acme.com/README&quot;/&gt;</code></p>
-</blockquote>
-<p>The main motivation behind &lt;import&gt; is to provide a simple, straightforward 
-  mechanism to access resources that can be specified via a URL, nothing more. 
-  If accessing a resource requires specifying more arguments, then a protocol 
-  specific action (e.g. an &lt;http&gt; action) should be used for that purpose. 
-  JSTL1.0 does not currently address these protocol specific elements but may 
-  do so in future releases.</p>
-<p>&lt;import&gt; is therefore the simple, generic way to access URL based resources 
-  whose content can then be included and or processed within the JSP page.</p>
-<p><b>Exporting an object: String or Reader</b></p>
-<p>By default, the content of the resource is included inline into the JSP page. 
-</p>
-<p>It is also possible to export the content of the resource in two different 
-  ways: as a String object (attribute &quot;var&quot;), or as a Reader object 
-  (attribute &quot;varReader&quot;). Process/Transform tags can get access to 
-  a resource's content through that exported object. Only one of &quot;var&quot; 
-  and &quot;varReader&quot; can be specified.</p>
-<p>Simplest way to export the resource content as an object is via the &quot;var&quot; 
-  atttibute. The data is <i>cached</i> in a String object and is <i>reusable</i>. 
-</p>
-<p>Although more complex in its usage, there may be some performance gains if 
-  the resource content is exported as a Reader object (instead of String object). 
-  Depending on the implementation and on the type of URL being accessed, it may 
-  be possible to access the content directly, without any unnecessary buffering. 
-  But please note that there are no performance guarantees; this is an implementation 
-  detail.</p>
-<p>The use of the varReader attribute comes with some restrictions. It is the 
-  responsibility of the &lt;import&gt; tag to ensure that if a Reader object is 
-  exported, it is properly closed by the end of the page.<br>
-  <font size="-1">[If the responsibility was left to the consumer tag, this could 
-  lead to resource leaks (e.g. connection left open, memory space for buffers) 
-  until garbage collection is activated if a consumer tag would not close the 
-  Reader, or simply if the page author would remove the consumer tag while leaving 
-  inadvertantly the &lt;import&gt; tag in the page.]</font></p>
-<p>Because of this, the visibility of a varReader object is nested, so that the 
-  Reader may be properly closed when reaching the closing &lt;/import&gt;. It 
-  therefore makes sense to export a Reader object only when the &lt;import&gt; 
-  has nested content that consumes the resource. Using a bodyless &lt;import&gt; 
-  tag with varReader is flagged as an error at translation time.<br>
-  <font size="-1">[This restriction could eventually be lifted when the JSP spec 
-  supports the notion of page events that actions could register to. On a <i>pageExit</i> 
-  event, an &lt;import&gt; tag would then simply release its resources if it had 
-  not already been done, removing the requirement for nested visibility. An RFE 
-  has been submitted to the JSP expert group.]</font></p>
-<p>It is also illegal to use nested &lt;param&gt; tags with varReader.<br>
-  <font size="-1">[Because varReader takes an arbitrary body and exposes a Reader 
-  for it, it needs to open a connection when the start tag is encountered. But 
-  if it opens the connection there, it won't have had a chance to hear from its 
-  &lt;param&gt; subtags (which modify the URL that &lt;import&gt; connects to).]</font></p>
-<p><b>Character Encoding</b></p>
-<p>When the var attribute is used to expose a Reader object, it is possible to 
-  specify the character encoding of the content at the input resource. For example:</p>
-<pre>&nbsp; &lt;c:import url=&quot;...&quot; varReader=&quot;doc&quot; charEncoding=&quot;...&quot;/></pre>
-<p>If the character encoding is not specified, the following rules apply:</p>
-<ul>
-  <li>If the response of the &lt;import&gt; request has a &quot;content-type&quot; 
-    header field, then the character encoding specified is used (the imported 
-    resource tells us about its encoding, we just use it)</li>
-  <li>Use ISO-8859-1 (which is the default value of charset for the contentType 
-    of the JSP &quot;page&quot; directive)</li>
-</ul>
-<p>Note that the charEncoding attribute should normally only be required when 
-  accessing absolute URL resources where the protocol is not HTTP, and where the 
-  encoding is not ISO-8859-1.</p>
-<p>Also, when dealing with relative URLs and the HTTP protocol, if the target 
-  resource declares a content encoding but proceeds to write a character invalid 
-  in that encoding, the treatment of that character is undefined.</p>
-<h3>3. Relative and Absolute URLs</h3>
-<p>The <code>url</code> attribute is used to specify the URL of the resource to 
-  access. It can either be an absolute URL (i.e. one that starts with a protocol 
-  followed by a colon), a relative URL used to access a resource within the same 
-  context, or a relative URL used to access a resource within a foreign context 
-  (context name must be specified).</p>
-<p>The exact semantics of the &lt;import&gt; tag depends on what type of URL is 
-  being accessed.</p>
-<p><b>Relative URL - same context</b></p>
-<p> This is processed in the exact same way as the standard include action (&lt;jsp:include&gt;) 
-  of the JSP specification. The resource belongs to the same web-app as the including 
-  page and it is specified as a relative URL. For example:</p>
-<pre>  &lt;c:import url=&quot;/copyright.html&quot;/&gt;</pre>
-<p>As specified in the JSP spec, a relative URL may either be a <i>context-relative</i> 
-  path, or a <i>page-relative</i> path. A context-relative path is a path that 
-  starts with a &#147;/&#148;. It is to be interpreted as relative to the application 
-  to which the JSP page belongs. A page-relative path is a path that does not 
-  start with a &#147;/&#148;. It is to be interpreted as relative to the current 
-  JSP page.</p>
-<p>The semantics of importing a resource specified with a relative URL in the 
-  same context are the same as an include performed by a RequestDispatcher in 
-  the Servlet specification. This means that the whole environment (request, session, 
-  application) of the importing page is available to the target resource (including 
-  request parameters of the importing page).</p>
-<p><b>Relative URL - foreign context</b><br>
-</p>
-<p> The resource belongs to a foreign context (web application) hosted under the 
-  same container as the importing page. The context name for the resource is specified 
-  via argument &quot;context&quot;. For example:</p>
-<pre>  &lt;c:import url=&quot;/logo.html&quot; context=&quot;/master&quot;/&gt;</pre>
-<p>The relative URL must be context-relative (i.e. must start with a &quot;/&quot;) 
-  since the including page does not belong to the same context. Similarly, the 
-  context name must also start with a &quot;/&quot;.</p>
-<p>The semantics of importing a resource specified with a relative URL in a foreign 
-  context are the same as an include performed by a RequestDispatcher on a foreign 
-  context in the Servlet specification. This means that only the &quot;request&quot; 
-  environment of the importing page is available to the target resource.</p>
-<p>It is important to note though that importing resources in foreign contexts 
-  may not work in all containers. A security conscious environment may not allow 
-  access to foreign contexts. As a workaround, a foreign context resource can 
-  also be accessed using an absolute URL. For example:</p>
-<pre>  &lt;c:import url=&quot;http://www.acme.com/master/logo.html&quot;/&gt;</pre>
-<p>However, it is much more efficient to use a relative URL because the resource 
-  is then accessed using RequestDispatcher of the servlet API. </p>
-<p><b>Absolute URL</b></p>
-<p>Given that JSP1.2 assumes a J2SE platform at a minimum, the &lt;import&gt; 
-  tag therefore supports at a minimum the protocols offered in that platform for 
-  absolute URLs. More protocols can still be available to a web application, but 
-  this will depend on the the class libraries made available to the webapp by 
-  the platform the container runs on.</p>
-<p>The example below shows how a request is sent to a remote site to obtain a 
-  list of customers, and how that list is then used as input to a notification 
-  tag.</p>
-<pre>  &lt;c:import url=&quot;http://acme.com/exec/customers?country=USA&quot; var=&quot;customers&quot;/&gt;<br>  &lt;acme:notify in=&quot;$customers&quot;/&gt;</pre>
-<p>When using an absolute URL to import a resource, none of the current execution 
-  environment (request, session, application) is made available to the target 
-  resource, even if that absolute URL resolves to the same host and context path. 
-  Therefore, the request parameters of the importing page are not propagated to 
-  the target &quot;absolute URL&quot;.</p>
-<h3><b>4. &lt;urlEncode&gt;</b></h3>
-<p>URL encoding refers to the process of encoding special characters in a string, 
-  according to the encoding rules defined in RFC 1738 (section 2.2. URL Character 
-  Encoding Issues). </p>
-<p>For example, a space must be encoded in a URL string as a '+':</p>
-<blockquote>
-  <p><code>http://www.acme.com/app/register?name=Aristide+Bertrand&amp;country=Republique+Dominicaine 
-    </code> </p>
-</blockquote>
-<p>The &lt;urlEncode&gt; action will encode the string specified in attribute 
-  'value'. If the value attribute is not specified, encoding is performed on the 
-  tag's body content.</p>
-<p>By default, the result of the encoding is written to the page. It is also possible 
-  to export the result of the encoding as a JSP scoped attribute (java.lang.String) 
-  defined via attribute &quot;var&quot;. For example:</p>
-<pre>  &lt;urlEncode var=&quot;nameEncoded&quot; value=&quot;$name&quot;/&gt;
-</pre>
-<p>With respect to the &lt;import&gt; tag, it is important to note that all URLs 
-  need to be encoded. However, URL encoding is normally necessary only when dealing 
-  with query string parameters.</p>
-<p>For example, assuming the following absolute URL</p>
-<blockquote> 
-  <p><code>http://www.acme.com/app/register</code></p>
-</blockquote>
-<p>to which two query string parameters must be passed: &quot;name&quot; and &quot;country&quot;, 
-  both of which are retrieved from JSP scoped attributes. Since special characters 
-  can be part of these scoped attributes, they must be encoded before they can 
-  be added to the URL. This could be done as follows:</p>
-<blockquote> 
-  <p> <code>&lt;urlEncode var=&quot;nameEncoded&quot; value=&quot;$name&quot;/&gt;<br>
-    &lt;urlEncode var=&quot;countryEncoded&quot; value=&quot;$country&quot;/&gt;<br>
-    &lt;c:import url=&quot;$'http://www.acme.com/app/register?name='+nameEncoded+'&amp;country='+countryEncoded&quot;/&gt;</code></p>
-</blockquote>
-<p>However this is somewhat awkward. A better way is to use nested &lt;param&gt; 
-  tags to specify the query string parameters to be added to the URL. As a convenience, 
-  the &lt;param&gt; action has been designed such that query string parameters 
-  (both &quot;name&quot; and &quot;value&quot;) are automatically encoded for 
-  the &lt;import&gt; action. The following could therefore be used without having 
-  to worry about any encoding:</p>
-<blockquote> 
-  <pre>&lt;c:import url=&quot;http://www.acme.com/app/register&quot;&gt;
-  &lt;param name=&quot;name&quot; value=&quot;$name&quot;/&gt;
-  &lt;param name=&quot;country&quot; value=&quot;$country&quot;/&gt;
-&lt;/c:import&gt;</pre>
-</blockquote>
-<h3>5. &lt;param&gt;</h3>
-<p>The &lt;param&gt; element can be used with &lt;import&gt; to specify request 
-  parameters.</p>
-<p>One might argue that this is redundant given that the URL can be constructed 
-  to include query string parameters.</p>
-<p>For example:</p>
-<pre>  &lt;c:import url=&quot;/exec/doIt&gt;<br>    &lt;c:param name=&quot;action&quot; value=&quot;register&quot;/&gt;<br>  &lt;/c:import&gt;</pre>
-<p>is the same as:</p>
-<pre>  &lt;c:import url=&quot;/exec/doIt?action=register&quot;/&gt;</pre>
-<p>It is indeed redundant, but is consistent with &lt;jsp:include&gt; supporting 
-  nested &lt;jsp:param&gt; sub-elements. Moreover, it has been designed such that 
-  the parameter &quot;name&quot; and &quot;value&quot; are automatically <i>url 
-  encoded</i> (as described in the previous section). Automatic encoding can be 
-  disabled using optional attribute &quot;encode&quot;, whose value defaults to 
-  &quot;true&quot; otherwise.</p>
-<p>It is important to note that that the query parameter aggregation rules work 
-  the same way they do with &lt;jsp:include&gt;; the original parameters are augmented 
-  with the new parameters, with new values taking precedence over existing values 
-  when applicable.The scope of the new parameters is the import call; the new 
-  parameters (and values) will not apply after the import. This is the same behavior 
-  as in the ServletRequest include and forward methods (see Section 8.1.1 in the 
-  Servlet 2.2 specification).</p>
-<p>For example:</p>
-<pre>  &lt;c:import url=&quot;http://acme.com/exec/doIt?foo=foovalOne&quot;/&gt;<br>    &lt;c:param name=&quot;foo&quot; value=&quot;fooval 2&quot;/&gt;<br>    &lt;c:param name=&quot;bar&quot; value=&quot;bar value&quot;/&gt;<br>  &lt;/c:import&gt;
-</pre>
-modifies the absolute URL as follows: 
-<pre>&nbsp;&nbsp;http://acme.com/exec/doIt?foo=fooval+2&amp;bar=bar+value&amp;foo=foovalOne</pre>
-<h3>5. Summary</h3>
-<table width="100%" border="1" cellpadding="5">
-  <tr> 
-    <td colspan="2" bgcolor="#000099"><b><font color="#FFFFFF" size="+1">Import 
-      Tags</font></b></td>
-  </tr>
-  <tr bgcolor="#FFFF66"> 
-    <td width="39%"><b>Element</b></td>
-    <td width="61%"><b>Sample usage</b></td>
-  </tr>
-  <tr> 
-    <td width="39%" height="123"> 
-      <p><code><b>&lt;import&gt;<br>
-        </b><font color="#FF0000"><b><font color="#000000">url</font></b></font><font color="#0000FF"> 
-        <font color="#000000">var varReader charEncoding</font></font> <font color="#000000">context 
-        </font><br>
-        <b></b><font color="#0000FF"> </font></code></p>
-      <p>Action for a simple, generic way to access URL based resources. Extends 
-        &lt;jsp:include&gt; to support foreign contexts and absolute URLs, as 
-        well as to export an object for explicit collaboration with process/transformation 
-        tags (avoiding unnecessary buffering).</p>
-    </td>
-    <td width="61%" height="123"> 
-      <p><code>&lt;c:import url=&quot;ftp://ftp.acme.com/README&quot;/&gt;<br>
-        <br>
-        </code><code>&lt;c:import url=&quot;/xml/doc.xml&quot; varReader=&quot;in&quot;/><br>
-        &lt;acme:process in=&quot;$in&quot;</code><code>/></code></p>
-    </td>
-  </tr>
-  <tr> 
-    <td width="39%"> 
-      <p><code><b>&lt;param&gt;</b><br>
-        <font color="#000000"><b>name</b></font><font color="#CC0000"> </font><font color="#000000">value 
-        encode</font></code></p>
-      <p>Sub-element to specify request parameters for the enclosing &lt;import&gt;. 
-        The name and value of the parameter are url encoded (unless encode is 
-        false). </p>
-    </td>
-    <td width="61%"> 
-      <p><code>&lt;c:import url=&quot;/exec/register&quot;><br>
-        &nbsp;&nbsp;&lt;c:param name=&quot;id&quot; value=&quot;foo&quot;/&gt;<br>
-        &lt;/c:import&gt; </code></p>
-    </td>
-  </tr>
-  <tr> 
-    <td width="39%"> 
-      <p><code><b>&lt;urlEncode&gt;</b><br>
-        <font color="#000000"><b>value</b></font><font color="#CC0000"> </font><font color="#000000">var</font></code></p>
-      <p>URL encoding.</p>
-    </td>
-    <td width="61%"> 
-      <pre>&lt;a href=&quot;http://acme.com/register
-   ?name=&lt;c:urlEncode value='$name'/&gt;&quot;/></pre>
-    </td>
-  </tr>
-</table>
-<h3>6. Networking Properties</h3>
-<p>If the web container executes behind a firewall, some absolute URL resources 
-  may be inaccessible. To provide access to these resources, the JVM of the container 
-  should be started with the proper networking properties (e.g. proxyHost, proxyPort). 
-  More details can be found in the Java 2 SDK, Standard Edition Documentation 
-  (Networking Features &#151; Networking Properties).</p>
-<h3>7. Notes</h3>
-<ul>
-  <li> 
-    <p>&lt;c:import&gt; tags are all independent from one another; they do not 
-      create an implicit session among themselves using cookies.<br>
-      [This refers to absolute HTTP URLs in particular. &lt;c:import&gt; acts 
-      like a &quot;cookie-less&quot; browser in that it ignores cookies it receives 
-      from HTTP URLs and never sends any back. A user of &lt;c:import&gt; can't 
-      assume that successive accesses against the same application will support 
-      a cookie-based session for that application.]
-  </li>
-  <li>There is no way using the &lt;import&gt; tag to authenticate to a URL that 
-    requires HTTP basic authentication.</li>
-</ul>
-<h3>8. Design decisions of interest</h3>
-<p>We know you'd eventually ask these questions. Here are the answers...</p>
-<p><b><a name="map"></a>Transparently map absolute URLs to relative ones when 
-  possible? No.</b></p>
-<p>If a resource is specified as an absolute URL, it may still refer to a resource 
-  located on the same container (same or foreign context). Why not have the &lt;import&gt; 
-  tag transparently map absolute URLs to relative ones when possible to improve 
-  performance? </p>
-<p>We've decided against it simply because doing things behind the scenes may 
-  lead to confusion. Users should understand the difference between absolute and 
-  relative URLs, and the impact of using one vs the other in terms of performance 
-  as well as execution environment of the imported resource.</p>
-<p>So, even if a request with an absolute URL does go back to the same webapp, 
-  we are not propogating session identity either.</p>
-<p><b>Transparently map foreign context relative URLs to absolute URLs in &quot;security 
-  conscious&quot; containers? No.</b></p>
-<p>If accessing a resource in a foreign context using a relative URL fails (security 
-  conscious container that does not allow it), why not design the tag so it transparently 
-  maps the foreign context relative URL to an absolute URL? </p>
-<p>We've decided against it because for the same reason as above, as well as for 
-  portability concerns. In container X, the resource might be accessed via RequestDispatcher 
-  and has therefore access to request attributes, the foreign context session 
-  and application environment. However, if in container Y the resource is accessed 
-  via a new HTTP request, the resource is not accessed with that same environment.</p>
-</body>
-</html>
diff --git a/doc/web/IteratorTag_FunctionalDescription_2_EAI.html b/doc/web/IteratorTag_FunctionalDescription_2_EAI.html
deleted file mode 100644
index bdcd7ab..0000000
--- a/doc/web/IteratorTag_FunctionalDescription_2_EAI.html
+++ /dev/null
@@ -1,430 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>JSTL: Iterator Tags -- Functional Description</title>
-<style media="screen" type="text/css"><!--
-.fixme { color: red }
---></style>
-</head>
-<body bgcolor="#FFFFFF">
-<h3>
-
-  <hr width="100%" noshade>
-</h3>
-
-<h2> Iterator Tags &#151; Functional Description</h2>
-
-<h2> <tt>&lt;forEach><br>
-  &lt;forTokens></tt></h2>
-<hr width="100%" noshade>
-<h3>
-1. Introduction</h3>
-The <tt>&lt;forEach&gt;</tt> tag repeats its nested body content over the collection 
-of objects defined by the <tt>items</tt> attribute. For example, the JSP code 
-below creates an HTML table with one column that shows the default <i>display</i> 
-value of each item in the collection. 
-<pre>&nbsp; &lt;table>
-&nbsp;&nbsp;&nbsp; &lt;c:forEach var="customer" items="$customers">
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr>&lt;td>&lt;c:expr value="$customer"/>&lt;/td>&lt;/tr>
-&nbsp;&nbsp;&nbsp; &lt;/c:forEach>
-&nbsp; &lt;/table></pre>
-The <tt>forEach</tt> tag has the following features: 
-<ul>
-<li>
-Supports all standard J2SE <a href="#items">collection types.</a></li>
-
-<li>
-Exports an object that holds the <a href="#currentItem">current item</a>
-of the iteration.</li>
-
-<li>
-Exports an object that holds information about the <a href="#status">status
-of the iteration.</a></li>
-
-<li>
-Supports <a href="#range">range attributes</a> to iterate over a subset
-of the original collection.</li>
-
-<li>
-Exposes an <a href="#IteratorTag">interface</a> as well as a <a href="#IteratorTagSupport">base
-implementation class</a> so developers can easily implement collaborating
-subtags as well their own iteration tags according to their specific needs.</li>
-</ul>
-The forEach tag is the <i>base</i> iteration tag. It handles the most common
-iteration cases conveniently. Other iteration tags are also provided in
-the stardard tag library to support specific, specialized functionality
-not handled by the <tt>forEach</tt> tag (e.g. the <tt>forTokens</tt> tag).
-Developers can also easily extend the behavior of this base iteration tag
-to customize it according to an application's specific needs.
-<h3>
-<a NAME="items"></a>2. Collection of objects to iterate over</h3>
-The <tt>forEach</tt> tag supports the following data types for the collection 
-of objects to iterate over. 
-<ul>
-  <li> Array of Java Objects</li>
-  <ul>
-    <li> If the array contains a set of primitive types, then the current item 
-      for the iteration is automatically wrapped with its standard wrapper class 
-      (e.g. <tt>Integer</tt> for <tt>int</tt>, <tt>Float</tt> for <tt>float</tt>, 
-      etc...)</li>
-  </ul>
-  <li> Implementation of <tt>java.util.Collection</tt>. This includes among others: 
-    <tt>List, LinkedList, ArrayList, Vector, Stack, Set.</tt></li>
-  <li> Implementation of <tt>java.util.Iterator</tt>.</li>
-  <ul>
-    <li> Use with caution. An <code>Iterator</code> object is not resettable so 
-      it should not be used within more than one iteration tag.</li>
-  </ul>
-  <li> Implementation of <tt>java.util.Enumeration</tt>. 
-    <ul>
-      <li>Use with caution. An <code>Enumeration</code> object is not resettable 
-        so it should not be used within more than one iteration tag.</li>
-    </ul>
-  </li>
-  <li> Implementation of <tt>java.util.Map</tt>. This includes among others: <tt>HashMap, 
-    Hashtable, Properties, Provider, Attributes. </tt>See below for additional 
-    information about accessing the <a href="#currentItemMap">current item of 
-    a Map</a>.</li>
-  <li> Implementation of <tt>java.sql.ResultSet</tt>, including <tt>javax.sql.RowSet</tt>. 
-    See below for additional information about accessing the <a href="#currentItemResultSet">current 
-    item of a ResultSet</a>.</li>
-  <li> String. The string represents a list of Comma Separated Values (e.g. "mon,tue,wed").</li>
-</ul>
-The <tt>items</tt> attribute is optional. If it is not specified, the <a href="#range">range 
-attributes</a> must be specified to iterate a specific number of times over the 
-tag's body. 
-<h3>
-<a NAME="currentItem"></a>3. The current item</h3>
-<p>The current item of the iteration is made available via a JSP page scope attribute 
-  defined with attribute <tt>var</tt>. Attribute var has nested visibility, i.e. 
-  it only exists within the body of the &lt;forEach&gt; tag. At the end of the 
-  tag, the attribute is removed (no prior value is restored). Attribute <tt>var</tt> 
-  is optional. The page attribute is not created if a value is not defined for 
-  <tt>var.</tt> </p>
-<p>Normally, each object exposed by the <tt>forEach</tt> tag is an item
-of the underlying collection being iterated over. However, if iterating
-over a <tt>Map </tt>or a<tt> ResultSet</tt>, the exposed object is as follows:
-<p><a NAME="currentItemMap"></a>If <tt>items</tt> is of type <tt>Map</tt>,
-then the current item will be of type <tt>Map.Entry</tt> which has the
-following two properties:
-<ul>
-<li>
-<tt>key</tt> - The key under which this item is stored in the underlying
-Map.</li>
-
-<li>
-<tt>value</tt> - The value that corresponds to this key.</li>
-</ul>
-So, to iterate over the values of a <tt>Hashtable</tt>, the code would
-be implemented as follows:
-<p><tt>&nbsp; &lt;c:forEach var="entry" items="$myHashtable"/></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp; Next element is &lt;c:expr value="$entry.value/></tt> 
-  <br>
-  <tt>&nbsp; &lt;/c:forEach></tt>
-<p><a NAME="currentItemResultSet"></a>If items is of type <tt>ResultSet</tt>, 
-  then the current item is the <tt>ResultSet</tt> object itself positioned at 
-  the current row. Columns are accessed using the standard <tt>ResultSet</tt> 
-  API.
-<h3>
-<a NAME="status"></a>5. Iteration Status</h3>
-The iterator tag also makes available a wealth of information relative to the 
-iteration taking place. The set of properties supported by the status object is 
-described <a href="#IteratorTagStatus">here</a>. 
-<p>This status information is accessible by defining a JSP page scope attribute 
-  via the <tt>status</tt> attribute. This page scope attribute has nested visibility, 
-  i.e. it only exists within the body of the &lt;forEach&gt; tag. At the end of 
-  the tag, the attribute is removed (no prior value is restored). This is an optional 
-  attribute with no default. No page attribute is exposed if a value is not specified 
-  for the<tt> status </tt>attribute. 
-<p>In the example below, the JSP code creates an HTML table with the first
-column containing the position of the item in the collection, and the second
-containing the name of the employee.
-<pre>&nbsp; &lt;table>
-&nbsp;&nbsp;&nbsp; &lt;c:forEach var="employee" items="$employees" status="status">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td>&lt;c:expr value="$status.count"/>&lt;/td>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td>&lt;c:expr value="$employee.name"/>&lt;/td>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr>
-&nbsp;&nbsp;&nbsp; &lt;/c:forEach>
-&nbsp; &lt;/table></pre>
-
-<h3>
-<a NAME="range"></a>6. Range Attributes</h3>
-A set of range attributes is available to iterate on a subset of the collection
-of items. The <tt>begin</tt> and <tt>end</tt> indices can be specified,
-along with a <tt>step</tt>. If the <tt>items</tt> attribute is not specified,
-then the value of the current item is set to the integer value of the current
-index.
-<p>In this example, <tt>i</tt> would take values from 100 to 110 (included). 
-<pre>&nbsp; &lt;c:forEach var="i" begin="100" end="110">
-&nbsp;&nbsp;&nbsp; &lt;c:expr value=&quot;$i&quot;/&gt;
-&nbsp; &lt;/c:forEach></pre>
-
-<table BORDER CELLSPACING=2 CELLPADDING=5 WIDTH="685" >
-<tr>
-<td ALIGN=CENTER WIDTH="10%"></td>
-
-<th ALIGN=CENTER>specified</th>
-
-<th ALIGN=CENTER>not specified</th>
-</tr>
-
-<tr>
-<th ALIGN=CENTER WIDTH="10%">begin</th>
-
-<td>iteration starts at the item located at the specified index. First
-item in the collection is at index 0.</td>
-
-    <td>Iteration starts at the first item if items is specified. Illegal if items 
-      is also not specified.</td>
-</tr>
-
-<tr>
-<th ALIGN=CENTER WIDTH="10%">end</th>
-
-<td>iteration ends at the item located at the specified index (inclusive)</td>
-
-    <td>Iteration ends at the last element in the collection. Illegal if items 
-      is also not specified.</td>
-</tr>
-
-<tr>
-<th ALIGN=CENTER WIDTH="10%">step</th>
-
-<td>the iteration will only process every 'step' item of the collection,
-starting with the first one</td>
-
-<td>Every item in the collection is processed</td>
-</tr>
-</table>
-
-<h3><a NAME="attributes"></a>8. Attributes:</h3>
-
-<table BORDER CELLSPACING=2 CELLPADDING=5 WIDTH="709" >
-  <tr BGCOLOR="#FFFACD"> 
-    <th ALIGN=LEFT COLSPAN="4">collection to iterate over</th>
-  </tr>
-  <tr> 
-    <td><tt>items</tt></td>
-    <td>optional</td>
-    <td>expr</td>
-    <td>The collection of objects to iterate over. If not specified, the range 
-      attributes <tt>begin</tt> and/or <tt>end</tt> are required to specify the 
-      range of the iteration (for loop).</td>
-  </tr>
-  <tr> 
-    <th ALIGN=LEFT COLSPAN="4" BGCOLOR="#FFFACD">current item</th>
-  </tr>
-  <tr> 
-    <td height="0"><tt>var</tt></td>
-    <td height="0">optional</td>
-    <td height="0"><tt>String</tt></td>
-    <td height="0">Name of the page scope attribute used to store the current 
-      object being iterated over. Visibility is &quot;nested&quot;.</td>
-  </tr>
-  <tr> 
-    <th ALIGN=LEFT COLSPAN="4" BGCOLOR="#FFFACD">iteration status</th>
-  </tr>
-  <tr> 
-    <td><tt>status</tt></td>
-    <td>optional</td>
-    <td><tt>String</tt></td>
-    <td>Name of the variable used to store the current status of the iteration. 
-      Visibility is &quot;nested&quot;.</td>
-  </tr>
-  <tr> 
-    <th ALIGN=LEFT COLSPAN="4" BGCOLOR="#FFFACD">range</th>
-  </tr>
-  <tr> 
-    <td><tt>begin</tt></td>
-    <td>optional</td>
-    <td>expr</td>
-    <td>Iteration begins at the item located at the specified index. First item 
-      has index 0.</td>
-  </tr>
-  <tr> 
-    <td><tt>end</tt></td>
-    <td>optional</td>
-    <td>expr</td>
-    <td>Iteration ends at the item located at the specified index (inclusive).</td>
-  </tr>
-  <tr> 
-    <td><tt>step</tt></td>
-    <td>optional</td>
-    <td>expr</td>
-    <td>Iteration will only process every 'step' item of the collection.</td>
-  </tr>
-</table>
-
-<h3>
-<a NAME="IteratorTagStatus"></a>9. IteratorTagStatus</h3>
-The iteration status object (attribute <tt>status</tt>) has the following properties. 
-<br>
-&nbsp;
-<table BORDER CELLSPACING=2 CELLPADDING=5 WIDTH="688" >
-  <tr BGCOLOR="#FFFACD"> 
-    <th ALIGN=LEFT COLSPAN="3">current item</th>
-  </tr>
-  <tr BGCOLOR="#FFFACD"> 
-    <td ALIGN=LEFT BGCOLOR="#FFFFFF"><tt>current</tt></td>
-    <td ALIGN=LEFT BGCOLOR="#FFFFFF"><tt>Object</tt></td>
-    <td ALIGN=LEFT BGCOLOR="#FFFFFF">The current item. This object is also accessible 
-      directly from the <tt>IteratorTag</tt> interface. It is also made available 
-      here as a convenience.</td>
-  </tr>
-  <tr BGCOLOR="#FFFACD"> 
-    <th ALIGN=LEFT COLSPAN="3">current index / position</th>
-  </tr>
-  <tr> 
-    <td><tt>index</tt></td>
-    <td><tt>int</tt></td>
-    <td>The absolute, 0 based index of the current item.</td>
-  </tr>
-  <tr> 
-    <td ALIGN=LEFT><tt>count</tt></td>
-    <td ALIGN=LEFT><tt>int</tt></td>
-    <td ALIGN=LEFT>The relative, 1 based position of the current item. This increases 
-      by 1 for each item, regardless of begin, end, or step.</td>
-  </tr>
-  <tr> 
-    <td ALIGN=LEFT><tt>first</tt></td>
-    <td ALIGN=LEFT><tt>boolean</tt></td>
-    <td ALIGN=LEFT>Flag indicating if the current item is the first in the iteration.</td>
-  </tr>
-  <tr> 
-    <td ALIGN=LEFT><tt>last</tt></td>
-    <td ALIGN=LEFT><tt>boolean</tt></td>
-    <td ALIGN=LEFT>Flag indicating if the current item is the last in the iteration. 
-      This property is not supported when iterating over a ResultSet and step 
-      is > 1.&nbsp;</td>
-  </tr>
-  <tr> 
-    <th ALIGN=LEFT COLSPAN="3" BGCOLOR="#FFFACD">range</th>
-  </tr>
-  <tr> 
-    <td COLSPAN="3"><font size=-1>These values (combined with count) are important 
-      for allowing people to define special tags that tell when you're in the 
-      middle of a list, or when you're in an even or odd part of the list, etc. 
-      Because these values might have been specified as complex rtexprvalues or 
-      EL expressions, it's valuable to have these in a "precomputed" form.</font></td>
-  </tr>
-  <tr> 
-    <td><tt>beginSpecified</tt></td>
-    <td><tt>boolean</tt></td>
-    <td>Flag indicating if the <tt>begin</tt> attribute was specified.</td>
-  </tr>
-  <tr> 
-    <td><tt>begin</tt></td>
-    <td><tt>int</tt></td>
-    <td>The value of the <tt>begin</tt> attribute as specified in the tag. If 
-      the attribute was not specified, its corresponding value is undefined.</td>
-  </tr>
-  <tr> 
-    <td><tt>endSpecified</tt></td>
-    <td><tt>boolean</tt></td>
-    <td>Flag indicating if the <tt>end</tt> attribute was specified.</td>
-  </tr>
-  <tr> 
-    <td><tt>end</tt></td>
-    <td><tt>int</tt></td>
-    <td>The value of the <tt>end</tt> attribute as specified in the tag. If the 
-      attribute was not specified, its corresponding value is undefined.</td>
-  </tr>
-  <tr> 
-    <td><tt>stepSpecified</tt></td>
-    <td><tt>boolean</tt></td>
-    <td>Flag indicating if the <tt>step</tt> attribute was specified.</td>
-  </tr>
-  <tr> 
-    <td><tt>step</tt></td>
-    <td><tt>int</tt></td>
-    <td>The value of the <tt>step</tt> attribute as specified in the tag. If the 
-      attribute was not specified, its corresponding value is undefined.</td>
-  </tr>
-</table>
-
-<h3>
-<a NAME="IteratorTag"></a>10. Tag Collaboration</h3>
-Custom tags give developers the power to provide added functionality to
-a JSP application without having the page author to use Java code.
-<p>In this example, a page author must handle an item of the iteration
-differently depending whether it is an odd or even element.
-<p><tt>&nbsp; &lt;c:forEach var=&quot;product&quot; items="products" status=&quot;status&quot;><br>
-  &nbsp;&nbsp;&nbsp;&nbsp;&lt;c:declare id=&quot;status&quot; type=&quot;javax.servlet.jsp.jstl.core.IteratorTagStatus&quot;/&gt;</tt><br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;c-rt:choose></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c-rt:when test="&lt;%= status.getCount() 
-  % 2 == 0 %>"></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- even item --></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c-rt:when></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c-rt:otherwise></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- odd item --></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c-rt:otherwise></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;/c-rt:choose></tt> <br>
-  <tt>&nbsp; &lt;/c:forEach></tt> 
-<p>If this type of processing needs to be repeated often in the web applications
-of a company, it might be worth to provide page authors with a couple extra
-tags that would remove the need for conditional tags and expressions. For
-example:
-<p><tt>&nbsp; &lt;c:forEach items="$products"></tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;xyz:even></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- even item --></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/xyz:even></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;xyz:odd></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- odd item --></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/xyz:odd></tt>
-<br>
-  <tt>&nbsp; &lt;/c:forEach></tt> 
-<p>In order to make this possible, tags like <tt>&lt;odd></tt> and <tt>&lt;even></tt>
-need to be able to get access to the information exported by the <tt>forEach</tt>
-tag. This could be done explicitely, by specifying the name of the status
-object exported by the forEach tag. For example:
-<p><tt>&nbsp; &lt;c:forEach items="&lt;%=products%>" <font color="#3366FF">status="status"</font>></tt> 
-  <br>
-  <tt>&nbsp;&nbsp;&nbsp; &lt;xyz:even <font color="#3366FF">iter="status"</font>></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- even item --></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/xyz:even></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;xyz:odd <font color="#3366FF">iter="status"</font>></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- odd item --></tt>
-<br><tt>&nbsp;&nbsp;&nbsp; &lt;/xyz:odd></tt>
-<br>
-  <tt>&nbsp; &lt;/c:forEach></tt> 
-<p>The cooperation between these tags and the forEach tag can also be done
-implicitely via the <tt>findAncestorWithClass()</tt> method of the JSP
-API. This is possible because the <tt>forEach</tt> tag implements an interface
-that can be used in the call to <tt>findAncestorWithClass</tt> to get to
-the enclosing <tt>forEach</tt> tag.
-<p>The interface is defined as follows:<br>
-  <br>
-  <tt>&nbsp; interface IteratorTag {</tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp; public Object getCurrent();</tt> <br>
-  <tt>&nbsp;&nbsp;&nbsp; public IteratorTagStatus getIteratorStatus();</tt> <br>
-  <tt>&nbsp; }</tt> 
-<p>Interface <code>IteratorTagStatus</code> was described in a previous section. 
-<p>
-The fact that the <tt>forEach</tt> tag exposes an interface also means
-that other tags with iterative behavior can be developed using the same
-interface and will collaborate in the same manner with nested tags. See
-class <tt>IteratorTagSupport</tt> below to make this process even easier.
-<h3>
-<a NAME="IteratorTagSupport"></a>11. Tag Extensibility</h3>
-The forEach tag provides iteration capabilities for the most common cases.
-A developer simply needs to expose an appropriate kind of object to take
-advantage of it.
-<p>However, there will be situations where more specialized functionality
-will be required. A developer may need to write a new tag to expose new
-controlling functionality (e.g. for traversal order of a deep data structure,
-custom filtering, selection of appropriate objects from a custom data source).
-This is why the <tt>IteratorTagSupport </tt>class is provided. It will
-facilitate the implementation of <i>specialized</i> iterator tags that
-will meet an application's specific requirements.
-<pre>&nbsp; public abstract class IteratorTagSupport {
-&nbsp;&nbsp;&nbsp;&nbsp; ... (see source code)...
-&nbsp; }</pre>
-JSTL itself uses this inheritance-based mechanism to support additional specialized 
-iterator tags. For example, the <tt>&lt;forTokens></tt> tag is specialized to 
-support string tokens. It leverages the iteration behavior implemented in <tt>IteratorTagSupport</tt>, 
-and simply exposes a set of attributes that facilitate the specification of how 
-tokens are derived from a <tt>String </tt>object. 
-</body>
-</html>
diff --git a/doc/web/Overview.html b/doc/web/Overview.html
deleted file mode 100644
index f2e2093..0000000
--- a/doc/web/Overview.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<html>
-<head>
-<title>JSPTL: Overview</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
-<h1>Overview</h1>
-<p>This document provides a high level overview of the JSP&#153; Standard Tag 
-  Library (JSTL) as it stands for Beta 2. If you have a 
-  strong opinion on the topic &#151; positive (you really like it), or constructive 
-  (we messed up some parts and you have some constructive comments for improvements) 
-  &#151; we'll be happy to hear from you at <a href="mailto:jsr-52-comments@jcp.org">jsr-52-comments@jcp.org</a>. 
-  All comments will be read but we cannot guaranteee personal replies to all of 
-  them. </p>
-<p>Make sure you read this document first, then check out the jstl-examples web 
-  application in the release (once you have installed it on your web container 
-  following the instructions in the <a href="GettingStarted.html">Getting Started</a> 
-  document). This will help you get a good feel for what JSTL is all about. Then 
-  browse the other docs to get all the details, and finally give JSTL a ride in 
-  your own <b>prototype</b> web application. You should use JSTL only in prototype 
-  webapps because this is Early Access and things may/will change as we gather 
-  feedback and make adjustments. Thanks for your help making JSTL an awesome standard 
-  tag library...</p>
-<h3>Design Philosophy</h3>
-<p>JSP tag libraries help provide a clean separation between the business logic 
-  and the presentation layer of web applications. By keeping the programming logic 
-  out of JSP pages, web designers are now empowered to develop sophisticated JSP 
-  pages without having to resort to the scripting language associated with their 
-  JSP pages (usually the Java programming language). </p>
-<p>The base design philosophy in JSTL is therefore to provide page authors with 
-  a script free environment. EA1 defines the foundation elements to make this 
-  possible.</p>
-<h3>Multiple TLDs</h3>
-<p>A Tag Library is a collection of actions that encapsulate functionality to 
-  be used from within a JSP page. JSTL includes a wide variety of actions that 
-  naturally fit into discrete functional areas. This is why JSTL, altough a single 
-  standard tag library, is exposed via multiple TLDs to clearly show the functional 
-  areas it covers, as well as to give each one of them their own namespace. The 
-  table below lists these functional areas along with their URI. The table also 
-  shows the prefixes used in our documentation and examples (although web applications 
-  can use any prefix they want).</p>
-<div align="center"> 
-  <table border="1" cellpadding="5">
-    <tr> 
-      <th>Funtional Area</th>
-      <th>URI</th>
-      <th>Prefix</th>
-      <th>Example</th>
-    </tr>
-    <tr> 
-      <td>Core</td>
-      <td>http://java.sun.com/jstl/core</td>
-      <td> 
-        <div align="center"><font face="Courier New, Courier, mono">c</font></div>
-      </td>
-      <td><font face="Courier New, Courier, mono">&lt;c:<i>tagname</i> ...&gt;</font></td>
-    </tr>
-    <tr> 
-      <td>XML processing</td>
-      <td>http://java.sun.com/jstl/xml</td>
-      <td> 
-        <div align="center"><font face="Courier New, Courier, mono">x</font></div>
-      </td>
-      <td><font face="Courier New, Courier, mono">&lt;x:<i>tagname</i> ...&gt;</font></td>
-    </tr>
-    <tr> 
-      <td>I18N capable formatting</td>
-      <td>http://java.sun.com/jstl/fmt</td>
-      <td> 
-        <div align="center"><font face="Courier New, Courier, mono">fmt</font></div>
-      </td>
-      <td><font face="Courier New, Courier, mono">&lt;fmt:<i>tagname</i> ...&gt;</font></td>
-    </tr>
-    <tr> 
-      <td>Database access (SQL)</td>
-      <td>http://java.sun.com/jstl/sql</td>
-      <td> 
-        <div align="center"><font face="Courier New, Courier, mono">sql</font></div>
-      </td>
-      <td><font face="Courier New, Courier, mono">&lt;sql:<i>tagname</i> ...&gt;</font></td>
-    </tr>
-  </table>
-</div>
-<h3><br>
-  Expression Language Support</h3>
-<p>A key contribution of JSTL is the integration of an Expression Language (EL). 
-  An EL leverages the fact that JSP scoped attributes are the privileged way to 
-  communicate information from the business logic to the JSP pages. It makes it 
-  possible to easily access application data and manipulate it in simple ways 
-  without having to use scriptlets or request-time expression values. </p>
-<p>For example, this conditional tag tests whether the country of a customer is 
-  the USA.</p>
-<p><code> &nbsp;&nbsp;&lt;c:if test=&quot;${customer.address.country == 'USA'}&quot&gt;<br>
-  &nbsp;&nbsp;&nbsp;&nbsp;...</code><br>
-  <code>&nbsp;&nbsp;&lt;/c:if&gt;</code></p>
-<p>There were quite a few issues involved with the support of an Expression Language 
-  within JSTL given the constraint that it had to work without requiring any change 
-  to the JSP spec.&nbsp;In order to be able to support both the scripting (rtexprvalues) 
-  and the EL (elexprvalues) worlds, we had to come up with the concept of twin 
-  tag libraries: one that supports the expression language, and one that supports 
-  request time expression values. Our assumption is that people will mostly use 
-  the EL-based tag libraries, while it is still possible for hard core scripting 
-  page authors to use JSTL with rtexprvalues (provides benefits for type safety 
-  and performance) via the request-time based tag libraries (their URI simply 
-  has the &quot;-rt&quot; suffix appended).</p>
-<p>It is a hard task for the Expert Group to decide on a specific EL without first 
-  getting the general feeling from the community. This is why JSTL currently 
-  does not define a specific EL, but provides mechanisms for experimentation with 
-  a variety of ELs. Tell us what you feel is important for that EL, and feel free 
-  to implement one that others can experiment with. The goal is to select a single 
-  EL once the JSTL spec is ready for Community Review.</p>
-<p>Early Access contains several candidate Expression Languages. One of them is 
-  an implementation subset of ECMAScript (JavaScript) and is the one used by default. 
-  Please check <a href="EcmaScriptEL.html">EcmaScript as an Expression Language 
-  for JSTL</a>.</p>
-<h3>Tag Collaboration</h3>
-<p>Tags usually collaborate with their environment in implicit and/or explicit 
-  ways. Implicit collaboration is done via a well defined interface that allows 
-  nested tags to work seamleasly with the ancestor tag exposing that interface. 
-  The JSTL iterator tags support this mode of collaboration. Explicit collaboration 
-  happens when a tag explicitely exposes information to its environment. Traditionally, 
-  this has been done by exposing a scripting variable (with a JSP scoped attribute 
-  providing the actual object). Because JSTL supports an expression language, 
-  the need for scripting variables is significantly reduced. This is why all the 
-  JSTL tags expose information only as JSP scoped attributes (no scripting variable 
-  exposed). A bold move, we agree, but we feel this is the proper design decision 
-  to support script-free JSP pages. </p>
-<p>The convention is to use the name &quot;var&quot; for any tag attribute that 
-  exports information about the tag. For example, an iterator tag exposes the 
-  current item of the collection it is iterating over in the following way:</p>
-<p><code>&nbsp;&nbsp;&lt;c:forEach var=&quot;customer&quot; items=&quot;${customers}&quot;&gt;</code><code><br>
-  &nbsp;&nbsp;&nbsp;&nbsp;...</code><br>
-  <code>&nbsp;&nbsp;&lt;/c:forEach&gt;</code></p>
-<p>It is important to note that a name different than &quot;id&quot; was selected 
-  to stress the fact that a variable is exposed (actually a JSP scoped attribute), 
-  but not a scripting variable (which is normally the case when using an attribute 
-  named &quot;id&quot;).</p>
-<p>The convention also establishes the attribute &quot;scope&quot; to set the 
-  scope (page, request, session, application) of the JSP scoped attribute.</p>
-<p>In situations where a tag exposes more than one piece of information, the name 
-  &quot;var&quot; is used for the primary piece of information being exported, 
-  and an appropriate name is selected for any other secondary piece of information 
-  exposed (e.g. an iteration current status information is exported by the foreach 
-  tag via attribute <code>status</code>.)</p>
-<p>The fact that JSTL tags do not expose scripting variables would make it hard 
-  to collaborate with other tags whose data must be passed as rtexprvalues. To 
-  that effect, tag &lt;declare&gt; allows to declare a scripting variable to be 
-  associated with the JSP scoped attribute of the same name.</p>
-<h3>Tag Overloading</h3>
-<p>In JSTL, we try as much as possible to avoid too much &quot;overloading&quot; 
-  of a tag; i.e. tags with lots of attributes that can do just about anything. 
-  Rather, we privilege a larger number of tags with well focused behavior.</p>
-<p>&nbsp;</p>
-</body>
-</html>
diff --git a/doc/web/ReleaseNotes.html b/doc/web/ReleaseNotes.html
deleted file mode 100644
index 6e013bc..0000000
--- a/doc/web/ReleaseNotes.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<html>
-<head>
-<title>JSTL: Release Notes</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-<h1>'Standard' taglib (JSTL RI): Release Notes</h1>
-
-<p><b>The JSTL 1.0 Beta 2 RI builds on the 1.0 Beta 1 release, which
-introduced a variety of new features and rounded out some of the support
-initially provided in 1.0 EA3.</b></p>
-
-<hr/>
-
-<dt><b>19 Apr 2002 </b></dt>
-<dd>JSTL 1.0 Beta2 RI, version 1.0, introduced. See Appendix B of the JSTL Proposed Final Draft (at http://jcp.org/aboutJava/communityprocess/first/jsr052/index.html) for a list of changes since Beta1.</dd>
-
-<p><dt><b>12 Mar 2002 </b></dt>
-<dd>JSTL 1.0 Beta1 RI, version 1.0, introduced.</dd>
-
-<p><dt><b>12 Dec 2001</b></dt>
-<dd>JSTL 1.0 EA3 RI, version 1.0, introduced.  Version includes the following
-changes and additions:
-<ul>
- <li>Introduction of SQL tags ("sql:*" library).</li>
- <li>A performance improvement to the XML "transform" tag.</li>
- <li>Minor changes and bug fixes to the i18n and XML libraries.</li>
- <li>Distribution JAR files are now 'standard.jar' (RI) and 'jstl.jar'
-     (API).</li>
- <li>showSource.jsp no longer depends on raw file I/O (and so 
-     should work even when standard-examples is deployed as a WAR).</li> 
-</ul>
-</dd>
-
-<dt><b>21 Nov 2001</b></dt>
-<dd>JSTL 1.0 EA2 RI, version 1.0, introduced.  Version includes the following
-major changes and additions:
-<ul>
- <li>JSPTL has been renamed to JSTL.</li>
- <li>The "jsptl" library at Jakarta Taglibs has been renamed to
-     "standard."</li>
- <li>Tags for text inclusion and URL encoding introduced.</li>
- <li>Tags for i18n-capable text formatting introduced.</li>
- <li>Tags for XML manipulation introduced.</li>
- <li>JSTL now divides functionality among multiple TLDs.  Each TLD represents
-     a cohesive unit of functionality, such as "XML manipulation" and
-     "formatting."  'jx' and 'jr' are no longer used; they are replaced
-     with shorter abbreviations for the common cases (e.g., 'c', 'x').
- <li>ECMAScript is now the default expression evaluator.  Since the
-     first release of 1.0 EA1, new languages include JXPath and ECMAScript.</li>
- <li>The RI has been thoroughly repackaged; many classes have moved.</li>
- <li>The package name for the JSTL API is now javax.servlet.jsp.jstl
-     and is subdivided into cohesive packages.  (The old package for the
-     API was javax.servlet.jsptl.)</li>
- <li>A small number of minor changes were made to the code.  By and large,
-     these changes are not significant; the easiest way to discover
-     further details is to look at the CVS archive itself.</li>
-</ul>
-</dd>
-
-<p><dt><b>09 Oct 2001</b></dt>
-<dd>JSTL 1.0 EA1 RI, version 1.2, introduced.  This version includes support
-for ECMAScript.</dd>
-
-<p><dt><b>23 Jul 2001</b></dt>
-<dd>JSTL 1.0 EA1 RI, version 1.1, is released.  This version is compatible
-with Tomcat 4.0 B6 and Tomcat 4.0 release.</dd>
-
-<p><dt><b>10 Jul 2001</b></dt>
-<dd>JSTL 1.0 EA1 RI first made available for download.</dd>
-
-<p><dt><b>08 Jul 2001</b></dt>
-<dd>Initial version of JSTL RI contributed by JSR-052 Expert Group
-    and imported into Jakarta CVS archive.</dd>
-
-</body>
-</html>
diff --git a/doc/web/XML_ControlFlow_FunctionalDescription_1_EA2.html b/doc/web/XML_ControlFlow_FunctionalDescription_1_EA2.html
deleted file mode 100644
index 3d2c559..0000000
--- a/doc/web/XML_ControlFlow_FunctionalDescription_1_EA2.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>XML ControlFlow -- Functional Description</title>
-<style media="screen" type="text/css"><!--
-.fixme { color: red }
---></style>
-</head>
-<body bgcolor="#FFFFFF">
-<h3> 
-  <hr width="100%" noshade>
-</h3>
-<h2> XML Control Flow Tags &#151; Functional Description <br>
-</h2>
-<h2> <tt>&lt;x:forEach></tt><tt><br>
-  &lt;x:if&gt;<br>
-  &lt;x:choose&gt; &lt;x:when&gt; &lt;x:otherwise&gt; <br>
-  </tt></h2>
-<hr width="100%" noshade>
-<h3>1. Introduction</h3>
-<p>The core set of XML tags provides the basic functionality to easily parse and 
-  access XML data. Another important piece of functionality is the ability to 
-  iterate over elements in an XML document, as well as conditionally process JSP 
-  code fragments depending on the result of an XPath expression. The actions presented 
-  in this document provide these capabilities.</p>
-<h3>2. &lt;forEach&gt;</h3>
-<p>The &lt;forEach&gt; action evaluates the given XPath expression and iterates 
-  over the result, setting the context node to each element in the iteration. 
-  For example:</p>
-<blockquote>
-  <p><code>&lt;x:forEach select=&quot;$doc//author&quot;&gt;<br>
-    &nbsp;&nbsp;&lt;x:valueOf select=&quot;@name&quot;&gt;<br>
-    &lt;/x:forEach&gt; </code></p>
-</blockquote>
-<p>Optional attribute &quot;var&quot; makes it possible to save the current context 
-  node of the iteration in a JSP &quot;page&quot; attribute. The exported object 
-  has nested visibility.</p>
-<h3>3. <tt>&lt;if></tt></h3>
-<p>The <tt>&lt;if></tt> action has a &quot;select&quot; attribute that specifies 
-  an XPath expression. The expression is evaluated and the resulting object is 
-  converted to a boolean according to the <a href="#XpathBooleanFunction">semantics 
-  of the XPath boolean function</a>. The tag renders its body if the result is 
-  true. For example:</p>
-<blockquote>
-  <p><code>&lt;x:if select=&quot;$customer/[location='UK']&quot;&gt;<br>
-    &nbsp;&nbsp;UK based<br>
-    &lt;/x:if&gt;</code>
-</blockquote>
-<h3>4. <tt>&lt;choose> &lt;when&gt; &lt;otherwise&gt;</tt></h3>
-<p>The <tt>&lt;choose></tt> action selects one among a number of possible alternatives. 
-  It consists of a sequence of &lt;x:when&gt; elements followed by an optional 
-  &lt;x:otherwise&gt;. Each &lt;x:when&gt; element has a single attribute, select, 
-  which specifies an XPath expression. When a &lt;x:choose&gt; element is processed, 
-  each of the &lt;x:when&gt; elements has its expression evaluated in turn, and 
-  the resulting object is converted to a boolean according to the <a href="#XpathBooleanFunction">semantics 
-  of the XPath boolean function</a>. The body of the first, and only the first, 
-  &lt;x:when&gt; whose result is true is rendered. </p>
-<p>If none of the test conditions of nested <tt>&lt;when></tt> tags evaluates 
-  to true, then the body of an <tt>&lt;otherwise></tt> tag is evaluated, if present. 
-</p>
-<blockquote> 
-  <p><code>&lt;x:choose&gt;<br>
-    &nbsp;&nbsp;&lt;x:when test=&quot;$customer/firstName&quot;&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;Hello &lt;xtags:valueOf select=&quot;$customer/firstName&quot;/&gt;<br>
-    &nbsp;&nbsp;&lt;/x:when&gt;<br>
-    &nbsp; &lt;x:otherwise&gt;<br>
-    &nbsp;&nbsp;&nbsp;&nbsp;Hello there friend<br>
-    &nbsp;&nbsp;&lt;/x:otherwise&gt;<br>
-    &lt;/x:choose&gt;</code></p>
-</blockquote>
-<h3><a name="XpathBooleanFunction"></a>5. XPath &quot;boolean&quot; function</h3>
-<p>As specified in the XPath spec, the boolean function converts its arguments 
-  to a boolean as follows:</p>
-<ul>
-  <li>a number is true if an only if it is neither positive or negative zero nor 
-    NaN</li>
-  <li>a node-set is true if and only if it is non-empty</li>
-  <li>a string is true if and only if its lenght is non-zero</li>
-</ul>
-<h3>6. Summary</h3>
-<table border="1" cellpadding="5" width="100%">
-  <tr> 
-    <td colspan="2" bgcolor="#000099"><b><font color="#FFFFFF" size="+1">XML Control 
-      Flow Tags</font></b></td>
-  </tr>
-  <tr bgcolor="#FFFF66"> 
-    <td width="55%"><b>Element</b></td>
-    <td width="45%"><b>Sample usage</b></td>
-  </tr>
-  <tr> 
-    <td width="55%"><code><b>&lt;forEach&gt;</b></code><br>
-      <b><code>&nbsp;select</code></b><code> var</code><br>
-      <br>
-      Evaluates the given XPath expression and iterates over the result, setting 
-      the context node to each element in the iteration.</td>
-    <td width="45%"><code>&lt;x:forEach select=&quot;$doc//author&quot;&gt;<br>
-      &nbsp;&nbsp;&lt;x:valueOf select=&quot;@name&quot;&gt;<br>
-      &lt;/x:forEach&gt; </code></td>
-  </tr>
-  <tr> 
-    <td width="55%"> 
-      <p><code><b>&lt;if&gt; <br>
-        &nbsp;select<br>
-        </b></code><br>
-        Simple conditional tag, which evalutes its body if the supplied Xpath 
-        expression evaluates to true (as if by a call to the XPath &quot;boolean&quot; 
-        function).</p>
-    </td>
-    <td width="45%"><code>&lt;x:if select=&quot;$customer/[location='UK']&quot;&gt;<br>
-      &nbsp;&nbsp;UK based<br>
-      &lt;/x:if&gt;</code> </td>
-  </tr>
-  <tr> 
-    <td width="55%"> 
-      <p><code><b>&lt;choose&gt;<br>
-        </b></code><code><b>&lt;when&gt; <br>
-        &nbsp;select</b><b><br>
-        &lt;otherwise&gt;</b></code><br>
-        <br>
-        Simple conditional tag that establishes a context for mutually exclusive 
-        conditional operations, marked by<code> &lt;when&gt;</code> and<code> 
-        &lt;otherwise&gt;.</code></p>
-    </td>
-    <td width="45%"><code>&lt;x:choose&gt;</code><code><br>
-      &nbsp;&nbsp;&lt;x:when select=&quot;...&quot;&gt;<br>
-      &nbsp;&nbsp;&nbsp;&nbsp;...<br>
-      &nbsp;&nbsp;&lt;/x:when&gt; </code><code><br>
-      &nbsp;&nbsp;&lt;x:when select=&quot;...&quot;&gt;<br>
-      &nbsp;&nbsp;&nbsp;&nbsp;...<br>
-      &nbsp;&nbsp;&lt;/x:when&gt; </code><code><br>
-      &nbsp;&nbsp;...<br>
-      &nbsp;&nbsp;&lt;x:otherwise&gt;<br>
-      &nbsp;&nbsp;&nbsp;&nbsp;...<br>
-      &nbsp;&nbsp;&lt;/x:otherwise&gt; </code><code></code><code> </code><code> 
-      <br>
-      &lt;/x:choose&gt; </code></td>
-  </tr>
-</table>
-<h3>&nbsp;</h3>
-</body>
-</html>
diff --git a/doc/web/XML_Core_FunctionalDescription_2_EA2.html b/doc/web/XML_Core_FunctionalDescription_2_EA2.html
deleted file mode 100644
index c2ab35a..0000000
--- a/doc/web/XML_Core_FunctionalDescription_2_EA2.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>XML Core -- Functional Description</title>
-<style media="screen" type="text/css"><!--
-.fixme { color: red }
---></style>
-</head>
-<body bgcolor="#FFFFFF">
-<h3> 
-  <hr width="100%" noshade>
-</h3>
-<h2> XML Core Tags &#151; Functional Description <br>
-</h2>
-<h2> <tt>&lt;x:parse><br>
-  &lt;x:expr&gt;<br>
-  &lt;x:set&gt;</tt><tt><br>
-  </tt></h2>
-<hr width="100%" noshade>
-<h3>1. Introduction</h3>
-<p>Enterprise data used in the web tier is increasingly XML these days &#151; 
-  whether the enterprise data is a response coming from a Web Service, the result 
-  of a stock quote from Nasdaq, a google search, babel fish translation, an Amazon 
-  book search, NewsML news articles, or RSS for content syndication. When companies 
-  cooperate over the web, XML is the data format of choice for exchanging information.<br>
-</p>
-<p>XML is therefore becoming more and more important in a page author's life. 
-  The set of XML tags specified in JSPTL is therefore meant to address the basic 
-  XML needs a page author is likely to encounter.</p>
-<h4>XPath</h4>
-<p>A key aspect of dealing with XML documents is to be able to easily access their 
-  content. <a href="http://www.w3.org/TR/xpath">XPath</a>, a W3C recommendation 
-  since 1999, provides an easy notation for specifying and selecting parts of 
-  an XML document. The XML tagset in JSPTL is therefore based on XPath.</p>
-<p>For the <i>XPath challenged</i>, here are a few links to get you started quickly:</p>
-<ul>
-  <li><a href="http://www.zvon.org/xxl/XPathTutorial/General/examples.html">Zvon 
-    XPath Tutorial</a></li>
-  <li><a href="http://www.oreilly.com/catalog/xmlnut/chapter/ch09.html">XML in 
-    a Nutshell &#151; Chapter 9 &#151; XPath</a></li>
-</ul>
-<p>It is important to note that the Expert Group is still debating which <i>global</i> 
-  Expression Language(s) will be officially supported by JSPTL. While this discussion 
-  is still taking place, the approach we've taken here is to consider XPath as 
-  a <i>local</i> Expression Language that applies to the XML tagset. How this 
-  local XPath Expression Language integrates with the Global Expression Language 
-  as well as JSP.next is briefly discussed in this document. </p>
-<p>The assumption is that if XPath (or a derivative) is not selected as <i>the</i> 
-  or one of <i>the</i> Global Expression Languages, this set of tags would probably 
-  stay as is. If XPath were to become one of <i>the</i> Global ELs, the design 
-  of these tags would probably change, the extent of which has not yet been addressed.<br>
-</p>
-<h3>2. XPath as a <i>local</i> Expression Language for the XML set of tags</h3>
-<p>What we're doing with our set of XML tags is expanding our notion of Expression 
-  Language so it can also apply &quot;locally&quot; to tags that want to support 
-  an EL that is not <i>the</i> global one(s) supported within JSPTL.</p>
-<p>Below are the rules of integration that XPath follows as a <i>local</i> EL, 
-  so we have the guarantees that it plays nicely within the JSP/JSPTL environment.</p>
-<h4>XPath Context</h4>
-  In XPath, the context for evaluating an expression consists of:: 
-<ul>
-  <li> a node or nodeset (see below)</li>
-  <li>variable bindings (see below)</li>
-  <li>function library: the default function library comes with the XPath engine. 
-    Some engines provide extension functions or allow customization to add new 
-    functions. The XPath function library in JSPTL is limited to the core function 
-    library of the XPath specification.</li>
-  <li>namespace prefix definitions which allow namespace prefixes to be used within 
-    the XPath expression<br>
-    ( e.g. /SOAP-ENV:Envelope/SOAP-ENV:Body/m:foo)</li>
-</ul>
-<p><b>Attributes to specify XPath Expressions</b></p>
-<p>In the JSPTL set of XML tags, XPath expressions are always specified using 
-  attribute &quot;select&quot;. This therefore means that only values specified 
-  for &quot;select&quot; attributes are evaluated using the XPath expression language. 
-  All other attributes are evaluated using the rules associated with the currently 
-  active global Expression Language. This should help avoid confusion between 
-  XPath and the global Expression Language.</p>
-<p><b>XPath Variable Bindings</b></p>
-<p>JSPTL supports variables in XPath expressions. The mapping of XPath variable 
-  expressions is defined as follows:<p>
-<table border="1" cellpadding="2" cellspacing="1">
-  <tr> 
-    <td><code>$foo</code></td>
-    <td>maps to <code>pageContext.findAttribute(&quot;foo&quot;)</code></td>
-  </tr>
-  <tr> 
-    <td><code>$page:foo</code></td>
-    <td>maps to page scope</td>
-  </tr>
-  <tr> 
-    <td><code>$request:foo</code></td>
-    <td>maps to request scope</td>
-  </tr>
-  <tr> 
-    <td><code>$session:foo</code></td>
-    <td>maps to session scope</td>
-  </tr>
-  <tr> 
-    <td><code>$app:foo</code></td>
-    <td>maps to application scope</td>
-  </tr>
-  <tr> 
-    <td><code>$param:foo</code></td>
-    <td>maps to <code>request.getParameter(&quot;foo&quot;)</code></td>
-  </tr>
-  <tr> 
-    <td><code>$initParam:foo</code></td>
-    <td>maps to <code>request.getInitParameter(&quot;foo&quot;)</code></td>
-  </tr>
-  <tr> 
-    <td><code>$cookie:foo</code></td>
-    <td>maps to the cookie's value for name <code>foo</code></td>
-  </tr>
-  <tr> 
-    <td><code>$header:foo</code></td>
-    <td>maps to <code>request.getHeader(&quot;foo&quot;)</code></td>
-  </tr>
-</table>
-<p>Through these mappings, scoped attributes, parameters, headers, and cookies 
-  can all be used inside XPath expressions easily. For example: 
-<blockquote>
-  <p> <code>/foo/bar[@x=$param:name]</code></p>
-</blockquote>
-<p> would find the &quot;bar&quot; element with an attribute &quot;x&quot; equal 
-  to the value of the http request parameter &quot;name&quot;.<br>
-</p>
-<p><b>Context Setup</b></p>
-<p>The context for the evaluation of an XPath Expression can be set in one of 
-  two ways; either directly within the XPath expression:</p>
-<blockquote> 
-  <p><code>&lt;x:parse source=&quot;$xml&quot; var=&quot;doc&quot;/&gt;<br>
-    &lt;x:expr select=&quot;$doc/...&quot;/&gt;</code></p>
-</blockquote>
-<p>or via an ancestor tag that sets a context that can be applied to its nested 
-  tags. In the example below, the XPath expression specified in the select attribute 
-  of &lt;expr&gt; has its context set to the current &quot;atom&quot; node in 
-  the document.</p>
-<blockquote> 
-  <p><code>&lt;x:forEach select=&quot;$doc//atom&quot;/&gt;<br>
-    &nbsp;&nbsp;&lt;x:expr select=&quot;name&quot;/&gt;<br>
-    &lt;x:forEach/&gt; </code></p>
-</blockquote>
-<h4>Relationship between Local EL and the Global EL(s)</h4>
-<p>As mentioned in the previous section, only the &quot;select&quot; attribute 
-  of xml tags can take XPath expressions. Global EL expressions and XPath expressions 
-  cannot be mixed in the &quot;select&quot; attributes. </p>
-<p>With JSPTL 1.0, the xml tagset knows that the value of select attributes are 
-  XPath expressions. However, things will be different in JSP.next when the evaluation 
-  of 'elexprvalues' are handled directly by the container. If the metacharacter 
-  used to identify an 'elexprvalue' is defined as '$', this means that XPath expressions 
-  starting with a variable would have to be escaped in a JSP.next environment, 
-  unless JSP.next has provisions in the TLD to prevent expression evaluation.</p>
-<p>There might be other issues. These will be addressed once the discussions on 
-  the Expression Language resume.</p>
-<h3>3. &lt;parse&gt;</h3>
-<p>The &lt;parse&gt; action parses an XML document and saves the resulting object 
-  in the JSP scoped attribute specified by attribute &quot;var&quot;. The type 
-  of the resulting object is not defined by the spec to allow implementations 
-  to use whatever they deem best for efficient implementations of the XML tagset.</p>
-<p>The XML document can be specified either via the &quot;source&quot; attribute 
-  (String or Reader object) </p>
-<blockquote>
-  <pre>&lt;jc:import url=&quot;http://acme.com/athletes?country=ethiopia&quot; var=&quot;xml&quot;/><br>&lt;x:parse source=&quot;$xml&quot; var=&quot;athletes&quot;/&gt;</pre>
-</blockquote>
-<p>or inline via the tag's body content:</p>
-<blockquote>
-  <pre>&lt;x:parse var=&quot;athletes&quot;&gt;
-  &lt;athletes&gt;
-    &lt;athlete&gt;
-      &lt;name&gt;Abebe Bikila&lt;/name&gt;
-      &lt;country&gt;Ethiopa&lt;/country&gt;<br>    &lt;/athlete&gt;  
-    &lt;athlete&gt;
-      &lt;name&gt;Mamo Wolde&lt;/name&gt;
-      &lt;country&gt;Ethiopia&lt;/country&gt;<br>    &lt;/athlete&gt;
-  &lt;/athletes&gt;
-&lt;/x:parse&gt;
-</pre>
-</blockquote>
-<p> When used in conjunction with the &lt;parse&gt; tag, the JSPTL core tag &lt;import&gt; 
-  provides access to a wide variety of URL-based input resources representing 
-  XML documents.</p>
-<p>It is also possible to force the &lt;parse&gt; action to expose an XML Document 
-  (org.w3c.dom.Document) by specifying &quot;domVar&quot; instead of &quot;var&quot; 
-  (mutually exclusive). This would be useful in situations where custom actions 
-  are developed to act on XML documents. Since it is not a requirement for the 
-  implementation to support its own internal data structures, it may therefore 
-  be the case that &quot;var&quot; exposes the same object as &quot;domVar&quot;.</p>
-<h4>Performance</h4>
-<p> If an implementation of the XML tagset is based on DOM-like structures (check 
-  with the specific implementation you're using), there will be a significant 
-  performance impact when dealing with large XML documents. To help with this, 
-  attribute &quot;filter&quot; can be used to allow filtering of the input data 
-  prior to having it parsed by the implementation into a DOM-like structure. </p>
-<p>For example, if one is interested in processing only the &quot;European&quot; 
-  customers which represent only 10% of the original XML document received as 
-  input, it will greatly reduce the size and complexity of the resulting DOM structure 
-  if all non-European customers are pruned from the XML document prior to parsing. 
-</p>
-<pre>  &lt;jc:import url=&quot;http://acme.com/customers&quot; var=&quot;xml&quot;/><br>  &lt;x:parse source=&quot;$xml&quot; filter=&quot;$filterEuropeanCust&quot; var=&quot;doc&quot;/&gt;</pre>
-<p>The &quot;filter&quot; attribute accepts an object of type <code>org.xml.sax.XMLFilter</code>.</p>
-<p>If configuration of the filter is desirable, it is suggested that the developer 
-  of the filter provide a custom tag for easy configuration by a page author.</p>
-<blockquote>
-  <p> <code>&lt;acme:myFilter var=&quot;filter&quot; xpath=&quot;//author&quot; 
-    ... /&gt;<br>
-    &lt;x:parse filter=&quot;$filter&quot; .../&gt;</code></p>
-</blockquote>
-<h3>4. &lt;expr&gt;</h3>
-<p>The <tt>&lt;expr></tt> action evaluates the given XPath expression on the current 
-  context node and outputs the result of the evaluation to the current JspWriter 
-  object. It is the equivalent of <tt>&lt;%= %></tt> and <code>&lt;jc:expr&gt;</code>, 
-  with the difference that it is meant for the XPath Expression Language world 
-  (as opposed to the scripting language world (<code>&lt;%= %&gt;</code>) and 
-  the Global Expression Language world of JSPTL <code>&lt;jc:expr&gt;</code>). 
-</p>
-<p>The expression to be evaluated is specified via the attribute &quot;select&quot; 
-  and must be in the XPath syntax. The result of the evaluation is coerced to 
-  a String and is subsequently emitted into the current JspWriter object. </p>
-<p>For example: </p>
-<p><tt>&nbsp; &lt;x:expr select="$athletes/athlete/name&quot;/&gt;</tt> </p>
-<h3>5. &lt;set&gt;</h3>
-<p>The <tt>&lt;set></tt> action evaluates an XPath expression (attribute &quot;select&quot;) 
-  and sets the result into a JSP scoped attribute specified by attribute &quot;var&quot;. 
-</p>
-<p>In this first example, the list of athletes from a specific country is saved 
-  in scoped attribute athletesOfCountry:</p>
-<blockquote> <code>&lt;x:set select=&quot;$athletes/athlete[country=$request:country]&quot; 
-  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var=&quot;athletesOfCountry&quot;/&gt; 
-  </code></blockquote>
-<p>In this second example, the &lt;set&gt; action is used to set a context used 
-  by other xml tags:</p>
-<blockquote>
-  <pre>&lt;x:set select=&quot;$athletes/athlete[id=$param:athleteId]&quot; var=&quot;ath&quot;/&gt;
-
-&lt;x:expr select=&quot;$ath/name&quot;/&gt;<br>&lt;x:expr select=&quot;$ath/country&quot;/&gt;</pre>
-</blockquote>
-<h3>6. Notes</h3>
-<ul>
-  <li> 
-    <p>Some XPath expressions can be evaluated without a context<br>
-      For example:<br>
-      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>starts-with($header:user-agent, 
-      'Mozilla 4.0')</code></p>
-  </li>
-</ul>
-<h3>7. Summary</h3>
-<table border="1" cellpadding="5">
-  <tr> 
-    <td colspan="2" bgcolor="#000099"><b><font color="#FFFFFF" size="+1">XML Core 
-      Tags</font></b></td>
-  </tr>
-  <tr bgcolor="#FFFF66"> 
-    <td width="318"><b>Element</b></td>
-    <td width="392"><b>Sample usage</b></td>
-  </tr>
-  <tr> 
-    <td width="318"><code><b>&lt;parse&gt;</b></code><br>
-      <code><font color="#FF0000"><font color="#000000">var</font></font> domVar 
-      source filter</code><br>
-      <br>
-      Parses an XML and saves its internal representation into the JSP scoped 
-      attribute specified by &quot;var&quot; (or &quot;domVar&quot;).</td>
-    <td width="392"> <code>&lt;c:import url=&quot;http://acme.com/athletes?country=ethiopia&quot; 
-      var=&quot;xml&quot;/><br>
-      &lt;x:parse source=&quot;$xml&quot; var=&quot;athletes&quot;/&gt; </code></td>
-  </tr>
-  <tr> 
-    <td width="318"> 
-      <p><code><b>&lt;expr&gt;</b></code><br>
-        <code><font color="#000000"><b>select</b></font></code><br>
-        <br>
-        Evaluates the given XPath expression and outputs its text value.<br>
-      </p>
-    </td>
-    <td width="392"> 
-      <p><code>&lt;x:expr select=&quot;$ath/name&quot;/&gt;</code></p>
-    </td>
-  </tr>
-  <tr> 
-    <td width="318"> 
-      <p><code><b>&lt;set&gt;</b></code><br>
-        <code><font color="#000000"><b>var</b></font> <b><font color="#000000">select</font></b></code><br>
-        <br>
-        Evaluates the given XPath expression and saves the result into the JSP 
-        scoped attribute specified by &quot;var&quot;.</p>
-    </td>
-    <td width="392"> <code>&lt;x:set<br>
-      &nbsp;&nbsp;select=&quot;$athletes/athlete[country=$request:country]&quot; 
-      &nbsp;&nbsp;var=&quot;athletesOfCountry&quot;/&gt;</code></td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/doc/web/XML_Transformation_FunctionalDescription_3_EA2.html b/doc/web/XML_Transformation_FunctionalDescription_3_EA2.html
deleted file mode 100644
index 6d8e617..0000000
--- a/doc/web/XML_Transformation_FunctionalDescription_3_EA2.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>XML Transformation Tags -- Functional Description</title>
-<style media="screen" type="text/css"><!--
-.fixme { color: red }
---></style>
-</head>
-<body bgcolor="#FFFFFF">
-<h3>
-
-  <hr width="100%" noshade>
-</h3>
-
-<h2> XML Transformation Tags &#151; Functional Description <br>
-</h2>
-
-<h2> <tt>&lt;x:transform><br>
-  &lt;x:param&gt; </tt><tt><br>
-  </tt><tt>&lt;x:transformer&gt;<br>
-  </tt></h2>
-<hr width="100%" noshade>
-<h3>1. &lt;transform&gt;</h3>
-<p>The &lt;transform&gt; tag applies a transformation to an XML document (attribute 
-  &quot;source&quot;), given a specific XSLT stylesheet (attribute &quot;xslt&quot;). 
-  If the source attribute is not specified, the input XML document is read from the 
-  tag's body content. </p>
-<p>In the example below, the XML document to be transformed is retrieved from 
-  an http request, while the XSLT stylesheet for the transformation is a webapp 
-  resource. The result of the transformation is written to the page.</p>
-<pre>&nbsp; &lt;c:import url=&quot;http://acme.com/customers?country=usa&quot; var=&quot;xml&quot;/>
-&nbsp; &lt;c:import url=&quot;/WEB-INF/xslt/customerList.xsl&quot; var=&quot;xslt&quot;/><br>&nbsp;&nbsp;&lt;x:transform source=&quot;$xml&quot; xslt=&quot;$xslt&quot;/&gt;</pre>
-<p>The source and xslt attributes are objects of any of the following types: java.lang.String, 
-  java.io.Reader, or javax.xml.transform.Source.</p>
-<p>As seen in the example above, the result of the transformation is written to 
-  the page by default. It is also possible to capture the result of the transformation 
-  in two other ways:</p>
-<ul>
-  <li>into a javax.xml.transform.Result object specified via attribute &quot;result&quot; 
-    (object to be provided by page author)</li>
-  <li>into a org.w3c.dom.Document object, that will be stored in the JSP scope 
-    attribute specified by &quot;var&quot;. </li>
-</ul>
-<p>&quot;var&quot; and &quot;result&quot; are mutually exclusive. What's interesting 
-  with the &quot;var&quot; attribute is that the exported document can be used 
-  directly with the other xml tags. For example:</p>
-<blockquote> 
-  <p><code>&lt;x:transform source=&quot;...&quot; xslt=&quot;..&quot; var=&quot;doc/&gt;<br>
-    &lt;x:expr select=&quot;$doc/...&quot;/&gt;</code></p>
-</blockquote>
-<p>The &lt;transform&gt; action also supports attribute &quot;transformer&quot; 
-  described in section 3 (&lt;transformer&gt;) below.</p>
-<h3>2. &lt;param&gt;</h3>
-<p>The &lt;param&gt; subtag can be used along with &lt;transform&gt; to set transformation 
-  parameters. Attributes 'name' and 'value' are used to specify the parameter. 
-  The value attribute is optional. If it is not specified the value is retrieved 
-  from the tag's body.</p>
-<p>For example:</p>
-<pre>&nbsp;&nbsp;&lt;x:transform source=&quot;$xml&quot; xslt=&quot;$xslt&quot;&gt;<br>    &lt;x:param name=&quot;foo&quot; value=&quot;foo-value&quot;/&gt;<br>  &lt;/x:transform&gt;</pre>
-<h3>3. &lt;transformer&gt;</h3>
-<p>It is sometimes the case that the same stylesheet transformation needs to be 
-  applied multiple times to different source XML documents. A more efficient approach 
-  is to process the transformation stylesheet once, and then save this &quot;transformer&quot; 
-  object for successive transformations.</p>
-<p>As shown in the example below, the &lt;transformer&gt; tag can be used in collaboration 
-  with the transformer attribute of &lt;transform&gt; to efficiently reuse a transformation 
-  stylesheet.</p>
-<pre>  &lt;c:import url=&quot;/xslt/style.xsl&quot; var=&quot;xslt&quot;/&gt;<br>  &lt;x:transformer xslt=&quot;$xslt&quot; var=&quot;transformer&quot;/&gt;<br>  &lt;c:forEach items=&quot;$xmlDocs&quot; var=&quot;xml&quot;&gt;<br>    ...<br>    &lt;x:transform source=&quot;$xml&quot; transformer=&quot;$transformer&quot; /&gt;<br>    ...<br>  &lt;/c:forEach&gt;</pre>
-The attribute xslt is optional and can be any of the following types: java.lang.String, 
-java.io.Reader, or javax.xml.transform.Source. If not specified, the stylesheet 
-is read from the tag's body content. 
-<h3>4. Summary</h3>
-<table width="100%" border="1" cellpadding="5">
-  <tr> 
-    <td colspan="2" bgcolor="#000099"><b><font color="#FFFFFF" size="+1">XML Transformation 
-      Tags</font></b></td>
-  </tr>
-  <tr bgcolor="#FFFF66"> 
-    <td width="39%"><b>Element</b></td>
-    <td width="61%"><b>Sample usage</b></td>
-  </tr>
-  <tr> 
-    <td width="39%" height="123"> 
-      <p><code><b>&lt;transform&gt;<br>
-        </b><font color="#000000">source xslt </font><font color="#000000">transformer</font> 
-        <font color="#000000">result</font> <font color="#000000"></font>var <br>
-        <b></b><font color="#0000FF"> </font></code></p>
-      <p>Applies a transformation to an XML document given a specific XSLT stylesheet 
-        or a transformer object.</p>
-    </td>
-    <td width="61%" height="123"> 
-      <pre>&lt;c:import url=&quot;/xml/employees.xml&quot; var=&quot;xml&quot;/>
-&lt;c:import url=&quot;/xslt/customerList.xsl&quot; var=&quot;xslt&quot;/><br>&lt;x:xslt source=&quot;$xml&quot; xslt=&quot;$xslt&quot;/&gt;</pre>
-      </td>
-  </tr>
-  <tr> 
-    <td width="39%"> 
-      <p><code><b>&lt;param&gt;</b><br>
-        <font color="#000000"><b>name</b> value </font></code></p>
-      <p>Sub-element to specify request parameters for the enclosing &lt;transform&gt;.</p>
-    </td>
-    <td width="61%">
-      <pre>
-
-&lt;x:transform source=&quot;$xml&quot; xslt=&quot;$xslt&quot;&gt;<br>  &lt;x:param name=&quot;foo&quot; value=&quot;foo-value&quot;/&gt;<br>&lt;/x:transform&gt;</pre>
-      <p>&nbsp;</p>
-    </td>
-  </tr>
-  <tr> 
-    <td width="39%"> 
-      <p><code><b>&lt;transformer&gt;</b><br>
-        <font color="#000000"><b>var</b> xslt </font></code></p>
-      <p>Creates a &quot;transformer&quot; object for more efficient transformations 
-        that use the same XSLT stylesheet.</p>
-    </td>
-    <td width="61%"> 
-      <pre>&lt;c:import url=&quot;/xslt/style.xsl&quot; var=&quot;xslt&quot;/&gt;<br>&lt;x:transformer xslt=&quot;$xslt&quot; var=&quot;transformer&quot;/&gt;<br>...<br>&lt;x:transform source=&quot;$xml&quot; transformer=&quot;$transformer&quot; /&gt;
-...
-&lt;x:transform source=&quot;$xml2&quot; transformer=&quot;$transformer&quot; /&gt;</pre>
-    </td>
-  </tr>
-</table>
-<h3>&nbsp;</h3>
-</body>
-</html>
diff --git a/doc/web/index.html b/doc/web/index.html
deleted file mode 100644
index ff1b0ac..0000000
--- a/doc/web/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<html>
-<head>
-<title>standard - Reference Implementation of the JSP(tm) Standard Tag
-  Library</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-<h1>RI for the JSP&#153; Standard Tag Library (JSTL)</h1>
-<h2>Release: 1.0 Beta 2</h2>
-
-<p>Thanks for downloading the JSTL 1.0 Beta 2 release. We hope you find the tags, documents, 
-  and examples here of interest. We're curious to hear your feedback on this release, 
-  which represents work in progress toward a standard JSP Tag Library. Please 
-  contact us at</p>
-
-<pre>	<a href="mailto:jsr-52-comments@jcp.org">jsr-52-comments@jcp.org</a>
-</pre>
-
-<p>with any comments you might have.</p>
-
-<p>Included in this distibution:</p>
-
-<h3>Documentation ('doc/web' directory)</h3>
-
-<ul>
-  <li><a href="GettingStarted.html">Getting Started</a>: A quick roadmap to help 
-    you get started with this release.</li>
-  <li><a href="Overview.html">Overview</a>: An overview of JSTL's design philosophy 
-    and current syntax.</li>
-  <li><a href="ReleaseNotes.html">Release Notes</a>: Changes since 1.0 Beta 1, and other 
-    historical information.</li>
-  <li><a href="http://www.jcp.org/aboutJava/communityprocess/review/jsr052/index.html">
-    JSTL 1.0 Specification</a> developed by the JSR052 expert group unider the
-    <a href="http://www.jcp.org">Java Community Process</a>. 
-    <ul>
-      <li>The specification is a formal description of the functionality and 
-      features of the JSTL 1.0 tag set.</li>
-    </ul>
-</ul>
-
-<h3>Examples ('examples' directory)</h3>
-
-<p>	The JSTL-examples application included with this distribution
-	demonstrates the current capabilities of JSTL, exploring idioms
-	and usage patterns when appropriate.</p>
-
-<h3>Reference implementation ('src' and 'conf' directories)</h3>
-
-<p>	Every effort has been made to provide a functional, robust, and
-	speedy reference implementation (RI) for the current functionality
-	JSTL offers.  For developers, the code is commented thoroughly
-	to help provide an understanding of design considerations and
-	salient implementation details.</p>
-
-<p>	Classes in the javax.servlet.JSTL represent the current
-	draft of the JSTL API classes.  Classes under org.apache.*
-	represent the reference implementation, expected to be released
-	through Jakarta Taglibs.  The package structure for the RI is
-	organized as follows:</p>
-
-<pre>
-  org.apache.taglibs.standard
-   .tag         tag handlers and routines related to them
-      .common      handlers and support routines common for RT/EL attributes
-          .core    core library (common)
-          .fmt     internationalization-capable formatting tags (common)
-          .xml     XML manipulation library (common)
-	  .sql	   SQL library (common)
-      .el          handlers specific to expression language (EL) evaluation
-          .core    core library (EL)
-          .fmt     internationalization-capable formatting tags (EL)
-          .xml     XML manipulation library (EL)
-	  .sql	   SQL library (EL)
-      .rt          handlers specific to rtexprvalue (rt) evaluation
-          .core    core library (rt)
-          .fmt     internationalization-capable formatting tags (rt)
-          .xml     XML manipulation library (rt)
-	  .sql	   SQL library (rt)
-   .tei         TagExtraInfo classes (common to both libraries)
-   .tlv         TagLibraryValidator classes (and associated helpers)
-   .lang        expression-language support and implementation
-      .dummy       dummy ExpressionEvaluator
-      .support     ExpressionEvaluator, ExpressionEvaluatorManager
-      .spel        SPEL
-      .jpath       JPath
-      .jxpath      JXPath
-</pre>
-
-<p>Enjoy!</p>
-
-<pre>
-   -- JSR-052 (JSTL) Expert Group
-      (<a href="mailto:jsr-52-comments@jcp.org">jsr-52-comments@jcp.org</a>)
-</pre>
diff --git a/doc/web/spel/index.html b/doc/web/spel/index.html
deleted file mode 100644
index b59c7d2..0000000
--- a/doc/web/spel/index.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<html>
-<head><title>SPEL Implementation</title></head>
-
-<body>
-<h1>SPEL Implementation</h1>
-<h4>Nathan Abramson (arista@atg.com)</h4>
-
-<h2>Overview</h2>
-
-<p>This distribution contains an implementation of the <a
-href="spel.html">Simplest Possible Expression Language (SPEL) for the
-JSTL</a>.  In addition to the implementation, the distribution
-contains regression tests for the parser and evaluator, and a simple
-performance test.
-
-<p>The distribution contains the following directories and files:
-
-<ul>
-<li><b>doc/</b> - documentation
-<li><b>src/</b> - all source files
-<li><b>lib/classes.jar</b> - compiled classes
-</ul>
-
-<h2>Implementation Notes</h2>
-
-<ul>
-
-<li>The class files are found in the package
-<b>org.apache.taglibs.standard.lang.spel</b>.
-
-<li>The class implementing ExpressionEvaluator is
-<b>org.apache.taglibs.standard.lang.spel.Evaluator</b>
-
-<li>The implementation assumes that the ExpressionEvaluator interface
-is found at <b>javax.servlet.jsp.jstl.core.ExpressionEvaluator</b>, with the
-following definition (taken from Shawn's implementation):
-
-<ul><pre>
-public String validate(String attributeName, 
-                       String expression); 
-public Object evaluate(String attributeName, 
-                       String expression, 
-                       Class expectedType, 
-                       Tag tag, 
-                       PageContext pageContext) 
-   throws JspException; 
-</pre></ul>
-
-<p>If this is not the package or definition of the ExpressionEvaluator
-interface, the appropriate changes should be made to the <tt>
-src/org/apache/taglibs/jsptl/lang/spel/Evaluator.java</tt>
-source file.  In any case, the <tt>ExpressionEvaluator</tt>
-implementation should be removed from the distribution, and the
-distribution should be compiled against the "real" implementation of
-that class.
-
-<li>The parser was generated using <a
-href="http://www.webgain.com/products/metamata/java_doc.html">JavaCC</a>.
-The parser definition is found in
-<tt>src/org/apache/taglibs/jsptl/lang/spel/SpelParser.jj</tt>,
-and all files generated by JavaCC are placed into the
-org.apache.taglibs.standard.lang.spel.parser package.  Note that JavaCC is not
-required to compile the SPEL implementation - it is only needed if the
-grammar in the SpelParser.jj file changes.
-
-<li>JavaCC 1.0 was used to generate the parser.  If desired, the most
-recent version of JavaCC can be used to regenerate the parser, but the
-<a href="#regressionTests">regression tests</a> should then be run to
-make sure the behavior hasn't changed.
-
-<li>All localizable error messages are stored in the 
-<tt>src/org/apache/taglibs/jsptl/lang/spel/Resources.properties</tt>
-file.  This file must be copied into the final distribution with the
-generated class files.
-
-</ul>
-
-<a name="regressionTests"><h2>Regression Tests</h2></a>
-
-<p>There are two sets of automated regression tests - the first tests
-the parser, and the second tests the full evaluator.  In both cases,
-the tester takes an input file containing expressions to be parsed or
-evaluated, processes each expression, and writes the results or errors
-to an output file.  The output file can then be compared against an
-expected output file to see if any regression has occurred.
-
-<p>In both cases, input lines that are blank or start with "#" are
-copied to the output file without interpretation.  This allows
-comments to appear in the output file, which can aid in debugging.
-
-<h4>Parser tests</h4>
-
-<p>The parser test input file is found at 
-<tt>src/org/apache/taglibs/jsptl/lang/spel/test/parserTests.txt</tt/>.
-Each line represents an expression to be parsed - the expression is
-parsed, and printed back out in the evaluator's "canonical form".  For
-example, in the canonical form, all Strings are enclosed by double
-quotes, all names are prefixed by a scope operator ":", etc.
-
-<p>The expected outputs are found at <tt>src/org/apache/taglibs/jsptl/lang/spel/test/parserTestsExpectedOutput.txt</tt>.
-
-<p>The parser tests can be run like this:
-
-<ul><pre>
-java org.apache.taglibs.standard.lang.spel.test.ParserTest {inputFile} {outputFile} [{expectedOutputFile}]
-</pre></ul>
-
-The {expectedOutputFile} is optional - if supplied, the test will
-compare the ouput file with the expected output file and print whether
-the test passed or failed.
-
-<h4>Evaluation tests</h4>
-
-<p>For the evaluation test, a "dummy" PageContext was created
-containing some beans with properties in various scopes.  That
-PageContext is created in the "createTestContext" method of 
-<tt>src/org/apache/taglibs/jsptl/lang/spel/test/EvaluationTest.java</tt>.
-
-<p>The evaluation test input file is found at 
-<tt>src/org/apache/taglibs/jsptl/lang/spel/test/evaluationTests.txt</tt>.
-Each line represents an expression to be parsed, followed by a line
-specifying the expected type - the expression is parsed, and the
-resulting value is printed along with its class.
-
-<p>The expected outputs are found at
-<tt>src/org/apache/taglibs/jsptl/lang/spel/test/evaluationTestsExpectedOutput.txt</tt>.
-
-<p>The evaluation tests can be run like this:
-
-<ul><pre>
-java org.apache.taglibs.standard.lang.spel.test.EvaluationTest {inputFile} {outputFile} [{expectedOutputFile}]
-</pre></ul>
-
-The {expectedOutputFile} is optional - if supplied, the test will
-compare the ouput file with the expected output file and print whether
-the test passed or failed.
-
-<a name="optimizations"><h2>Optimizations</h2></a>
-
-<p>Because expression evaluation could conceivably make up a large
-portion of a JSP's rendering time, a great deal of emphasis was placed
-on performance.  The following performance optimizations were used:
-
-<ul>
-
-<p><li>Parsed expressions are cached, so that each expression is
-parsed only once.  To avoid synchronization bottlenecks, the cache is
-only synchronized around determining if an expression is in the cache,
-and putting a parsed expression into the cache.  This means that two
-threads could both end up parsing and caching the same uncached
-expression at the same time, but the result of this is harmless.  This
-caching happens in the Evaluator class.
-
-<p><li>The Evaluator class is also responsible for parsing literals
-(expressions not starting with "$").  The results of these parsings
-are also cached, but in this case the key is {expression,
-expectedType}.  Rather than creating an actual key class (which would
-require object creations for each lookup), the tuple key is simulated
-by having two levels of caches: expected type -> expression -> parsed
-expression.
-
-<p><li>The mapping from {class,propertyName} to PropertyDescriptor is
-cached by the BeanInfoManager.  The PropertyDescriptors are used by
-the "{bean}.{property}" construct.
-
-<p><li>In cases where a primitive type needs to be wrapped in an
-object (such as the final casting from expression result to expected
-type), the PrimitiveObjects class is used to do the wrapping.  This
-class precalculates the wrappings for bytes and chars with values from
-0-255, and shorts, ints, and longs with values from -1000 to 1000.
-Wrapped values in those ranges will not require any object creations
-to represent their primitive values.
-
-</ul>
-
-<a name="performanceTests"><h2>Performance Tests</h2></a>
-
-<p>The distribution includes a single performance test which evaluates
-an expression many times.  The expression is:
-
-<ul><pre>
-session:bean1a.bean1.int1 &lt; 24
-</pre></ul>
-
-<p>To test for synchronization bottlenecks, the test spawns several
-threads which simultaneously evaluate the expression many times.
-
-<p>The test then runs again, but evaluates the expression "by hand"
-using direct API calls - i.e.,
-pageContext.getAttribute(...).getBean1().getInt1 () < 24.  So the
-performance test essentially determines the cost of using an
-expression instead of an rtexprvalue.
-
-<p>The test is run like this:
-
-<ul><pre>
-org.apache.taglibs.standard.lang.spel.test.PerformanceTest {#threads} {#iterations/thread}
-</pre></ul>
-
-<p>The initial results are encouraging - running 20 threads over
-100000 iterations/thread, a ThinkPad 600E could do ~50000
-iterations/second using the evaluator, and ~110000 iterations/second
-using the API calls.  So using the API calls in this example is only
-twice as fast as using the evaluator, which means that the expression
-language introduces a significant, but not severe performance penalty.
-
-<h4><i>$Change: 181170 $$DateTime: 2001/06/26 08:09:32 $$Author$</i></h4>
-
-</html>
diff --git a/doc/web/spel/spel.html b/doc/web/spel/spel.html
deleted file mode 100644
index e901130..0000000
--- a/doc/web/spel/spel.html
+++ /dev/null
@@ -1,533 +0,0 @@
-<html>
-<head><title>Simplest Possible Expression Language (SPEL) for
-JSPSTL</title></head>
-
-<body>
-<h1>Simplest Possible Expression Language (SPEL) for JSPSTL</h1>
-<h4>Nathan Abramson (arista@atg.com)</h4>
-
-<h2>Overview</h2>
-
-<p>The SPEL is designed to be the simplest possible JSPSTL expression
-language that is still useful.  The only required features of the SPEL
-are:
-
-<ul>
-
-<li>notion of scope (page, request, session, app)
-<li>nested attributes
-<li>relational operators
-
-</ul>
-
-<p>The idea is to design a language that will eventually grow, keeping
-in mind that future versions of the language should be backwards
-compatible with this version of the SPEL.
-
-<h2>Syntax</h2>
-
-<p>The syntax is extremely simple.  Attributes are accessed by name,
-with an optional scope ("page:", "request:", "session:", "app:").
-Properties of attributes are accessed using the "." operator, and may
-be nested arbitrarily.  Attribute and property names must be java
-identifiers, unless they are quoted.  Relational comparisons are
-allowed using the relational operators (==, !=, &lt;, &gt;, &lt;=,
-&gt;=).  Comparisons may be made against other values, or against
-boolean, String, integer, or floating point literals.
-
-<p>The following are the constructs supported by the SPEL:
-
-<table>
-
-<tr>
-<td><b>Expression</b></td>
-<td>::=</td>
-<td><b>Value</b></td>
-</tr>
-<tr>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>| <b>RelationalExpression</b></td>
-</tr>
-
-<tr>
-<td><b>RelationalExpression</b></td>
-<td>::=</td>
-<td><b>Value RelOp Value</b></td>
-</tr>
-
-<tr>
-<td><b>RelOp</b></td>
-<td>::=</td>
-<td><b>'=='</b></td>
-</tr>
-<tr>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>| '!='</b></td>
-</tr>
-<tr>
-<td>&nbsp;</td>
-<td>&nbsp;</td>
-<td>| '&lt;'</b></td>
... 79116 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org