| <?xml version="1.0"?> |
| <document url="./struts-el.xml"> |
| <properties> |
| <title>Struts EL Extension - Apache Struts</title> |
| </properties> |
| <body> |
| <section href="faq" name="Struts EL Extension"/> |
| |
| <section href="Introduction" name="Introduction"> |
| |
| <p> |
| This subproject is an extension of the Struts tag library. Each JSP custom tag |
| in this library is a subclass of an associated tag in the Struts tag library. |
| One difference is that this tag library does not use "rtexprvalues", it uses |
| the expression evaluation engine in the Jakarta Taglibs implementation of the |
| JSP Standard Tag Library (version 1.0) to evaluate attribute values. |
| </p> |
| |
| <p> |
| In addition, some of the Struts tags were not ported to this library, as it was |
| determined that their functionality was entirely supplied by the JSTL. These |
| particular Struts tags, and the reason for their non-porting will be described |
| in the documentation for this library. |
| </p> |
| |
| <p> |
| In order to fully understand the correct utilization of this library, you must |
| understand the use and operation of the Struts tag library, and the use and |
| operation of the JavaServer Pages Standard Tag Library (hereafter called the |
| "JSTL"), along with the expression language (sometimes called the "EL") used |
| for evaluating attribute values. |
| </p> |
| |
| </section> |
| |
| <section href="TagMapping" name="Tag Mapping"> |
| |
| <p> |
| In implementing the Struts-EL library, every Struts tag that provides a feature |
| that is not covered by the JSTL (1.0) library is mapped into the Struts-EL |
| library. This section reviews which Struts tags are NOT implemented in the |
| Struts-EL library, and which JSTL tags provide that feature. |
| </p> |
| |
| <p> |
| Many of the non-porting decisions were based on the fact that the JSTL |
| expression language itself provides the same functionality. In those cases, in |
| addition to a possible JSTL tag name, the symbol "EL" will be listed. |
| </p> |
| |
| <p> |
| <strong> Bean Tag Library Tags NOT Implemented in Struts-EL</strong> |
| </p> |
| |
| <table> |
| <tr><th>Struts Tag</th><th>JSTL Tag</th></tr> |
| <tr><td>cookie</td><td>c:set, EL</td></tr> |
| <tr><td>define</td><td>c:set, EL</td></tr> |
| <tr><td>header</td><td>c:set, EL</td></tr> |
| <tr><td>include</td><td>c:import</td></tr> |
| <tr><td>parameter</td><td>c:set, EL</td></tr> |
| <tr><td>write</td><td> c:out</td></tr> |
| </table> |
| |
| <p> |
| <strong>Bean Tag Library Tags NOT Implemented in Struts-EL</strong> |
| </p> |
| |
| <table> |
| <tr><th>Struts Tag</th><th>JSTL Tag</th></tr> |
| <tr><td>empty</td><td>c:if, c:when, EL</td></tr> |
| <tr><td>equal</td><td>c:if, c:when, EL</td></tr> |
| <tr><td>greaterEqual</td><td>c:if, c:when, EL</td></tr> |
| <tr><td>greaterThan</td><td>c:if, c:when, EL</td></tr> |
| <tr><td>lessEqual</td><td>c:if, c:when, EL</td></tr> |
| <tr><td>lessThan</td><td>c:if, c:when, EL</td></tr> |
| <tr><td>notEmpty</td><td>c:if, c:when, EL</td></tr> |
| <tr><td>notEqual</td><td>c:if, c:when, EL</td></tr> |
| </table> |
| |
| <p> |
| (Note that the "iterate" tag was originally ported, even with the presence of |
| the "c:forEach" tag, as the "indexed tag" functionality was not supported when |
| using "c:forEach" instead of "logic:iterate". This has since been rectified, |
| such that the "indexed tag" functionality checks for being contained in a |
| "c:forEach" tag, in addition to the "logic:iterate" tag. However, the ported |
| "iterate" tag has not been removed from Struts-EL, for backward compatibility.) |
| </p> |
| |
| <p> |
| <strong>Html Tag Library Tags NOT Implemented in Struts-EL</strong> |
| </p> |
| |
| <p> |
| None (all of them were ported). |
| </p> |
| |
| </section> |
| |
| <section href="AttributeMapping" name="Attribute Mapping"> |
| |
| <p> |
| At this point of the implementation, there is only one change (to two similar |
| tags) to the set of attributes between the Struts tags, and the Struts-EL tags. |
| The "logic:match" and "logic:notMatch" tags have an additional attribute named |
| "expr", which can take any value, and will be used as the value to compare |
| against, in addition to the choices of "cookie", "header", "name"/"property", |
| and "parameter". |
| </p> |
| |
| </section> |
| |
| <section href="UsageRequirements" name="Usage Requirements"> |
| |
| <p> |
| The Struts-EL tag library requires the use of the Struts tag library, and the |
| Java Server Pages Standard Tag Library. It is not necessary for JSP pages |
| using the Struts-EL tag library to also use the Struts tags or the JSTL tags, |
| but the Struts and JSTL tag libraries need to be part of the application |
| utilizing the Struts-EL tag library. |
| </p> |
| |
| <p> |
| This is because the Struts-EL tag classes are all subclasses of Struts tag |
| classes, and their implementation uses classes provided by the JSTL. |
| </p> |
| |
| </section> |
| |
| </body></document> |