tobrien 2004/06/09 07:25:39
Modified: jexl/xdocs index.xml
Log:
Developed some of the content on the index page. Explained that JEXL
is not compatible with JSTL EL but that it is inspired by JSTL, JSP, and
Velocity. Also added a setup paragraph for the code example.
Revision Changes Path
1.8 +65 -38 jakarta-commons/jexl/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/jakarta-commons/jexl/xdocs/index.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- index.xml 9 Jun 2004 13:21:26 -0000 1.7
+++ index.xml 9 Jun 2004 14:25:39 -0000 1.8
@@ -14,36 +14,53 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<document>
- <properties>
- <title>Commons JEXL Overview</title>
+<document>
+ <properties>
+ <title>Commons JEXL Overview</title>
</properties>
<body>
-
<section name="Java Expression Language (JEXL)">
<p>
Java Expression Language (JEXL) is an expression language engine which can be
- embedded in applications and frameworks. <!--It implements an extended
version of
- the Expression Language of the JavaServer Pages Standard Tag Library version
1.1
- (JSTL) and JavaServer Pages version 2.0 (JSP).-->
+ embedded in applications and frameworks. JEXL is inspired by Jakarta
Velocity
+ and the Expression Language defined in the JavaServer Pages Standard Tag
Library
+ version 1.1 (JSTL) and JavaServer Pages version 2.0 (JSP).
</p>
<p>
- The motivation was to bring some of the lessons learned by the Velocity
+ JEXL attempts to bring some of the lessons learned by the Velocity
community about expression languages in templating to a wider audience.
- Jelly needed Velocity-ish method access; it Just had to have it.
+ <a href="http://jakarta.apache.org/commons/jelly">Commons Jelly needed</a>
+ Velocity-ish method access, it just had to have it.
</p>
+
+ <p>
+ It must be noted that JEXL is not a compatibile implementation of EL as
defined
+ in JSTL 1.1 (JSR-052) or JSP 2.0 (JSR-152). For a compatible implementation of
+ these specifications, see the <a href="http://jakarta.apache.org/commons/el">
+ Commons EL</a> project.
+ </p>
+
+ </section>
+
+ <section name="A Brief Example">
<p>
- Here is an example of using Jexl :
+ When evaluating expressions, JEXL merges an <a
href="http://jakarta.apache.org/commons/jexl/apidocs/org/apache/commons/jexl/Expression.html">Expression</a>
with a <a
href="http://jakarta.apache.org/commons/jexl/apidocs/org/apache/commons/jexl/JexlContext.html">JexlContext</a>.
+ An Expression is created using <a
href="http://jakarta.apache.org/commons/jexl/apidocs/org/apache/commons/jexl/ExpressionFactory.html#createExpression(java.lang.String)">ExpressionFactory.createExpression()</a>,
passing a
+ String containing valid JEXL syntax. A JexlContext is created using
+ <a
href="http://jakarta.apache.org/commons/jexl/apidocs/org/apache/commons/jexl/JexlHelper.html#createContext()">JexlHelper.createContext()</a>,
and variables are put into a map exposed through
+ the <a
href="http://jakarta.apache.org/commons/jexl/apidocs/org/apache/commons/jexl/JexlContext.html#getVars()">getVars()</a>
method on JexlContext. The following example, takes a variable
+ named foo, and invokes the bar() method on the property innerFoo:
</p>
<source><![CDATA[
// Create an expression object
- Expression e = ExpressionFactory.createExpression("foo.innerFoo.bar()");
+ String jexlExp = "foo.innerFoo.bar()";
+ Expression e = ExpressionFactory.createExpression( jexlExp );
// Create a context and add data
JexlContext jc = JexlHelper.createContext();
@@ -52,8 +69,13 @@
// Now evaluate the expression, getting the result
Object o = e.evaluate(jc);]]></source>
+ </section>
+
+ <section name="Extensions to JSTL Expression Language">
+
<p>
- Jexl has extended the JSTL in a few ways :
+ While JEXL is similar to the expression language defined in JSTL, it has
improved
+ upon the syntax in a few areas:
</p>
<ul>
@@ -61,12 +83,15 @@
Support for invocation of any accessible method (see example above).
</li>
<li>
- Added a general size() method, which works on String, returning length,
- Map, returning # of keys, and List and arrays, returning the
- number of elements.
+ Added a general <span class="literal">size()</span> method, which works on:
+ <ul>
+ <li><span class="literal">String</span> - returns length</li>
+ <li><span class="literal">Map</span> - returns number of keys</li>
+ <li><span class="literal">List</span> - returns number of
elements.</li>
+ </ul>
</li>
<li>
- Optional syntax for the 'empty' function : empty(obj)
+ Optional syntax for the 'empty' function : empty(obj)
</li>
<li>
Misc : '+' has been overloaded to be use as a String concatenation operator
@@ -76,20 +101,6 @@
</section>
- <section name="Anyone Using It Yet?">
-
- <p>
- James Strachan's
- <a href="http://jakarta.apache.org/commons/jelly.html">
- Jelly</a>.
- </p>
-
- <p>
- Jexl and Jelly are two components of the Jakarta Je*l* Pack
- </p>
-
- </section>
-
<section name="Releases">
<p>
Jelly is not yet released, but a nightly build can be downloaded.
@@ -98,19 +109,35 @@
</section>
<section name="Related Resources">
- <!--<p>
- JEXL is not a product of the Java Community Process (JCP).
- JSP 2.0 is covered by Java Specification Requests (JSR)
- <a href="http://www.jcp.org/en/jsr/detail?id=152">JSR-152:
JavaServer
- Pages 2.0 Specification</a>. JSTL 1.1 is covered by
- <a href="http://jcp.org/en/jsr/detail?id=52">JSR 52: A Standard
- Tag Library for JavaServer Pages</a>.
- </p>-->
+ <p>
+ JEXL is not a product of the Java Community Process (JCP), but it
provides a
+ similar expression syntax. For more information about JSP 2.0 EL
and JSTL 1.1
+ EL:
+ </p>
+ <ul>
+ <li>
+ <a href="http://java.sun.com/products/jsp/index.jsp">JSP 2.0</a> is
covered
+ by Java Specification Requests (JSR)
+ <a href="http://www.jcp.org/en/jsr/detail?id=152">JSR-152:
JavaServer
+ Pages 2.0 Specification</a>.
+ </li>
+ <li>
+ <a href="http://java.sun.com/products/jsp/jstl/">JSTL 1.1</a> is
covered
+ by <a href="http://jcp.org/en/jsr/detail?id=52">JSR 52: A Standard
+ Tag Library for JavaServer Pages</a>.
+ </li>
+ </ul>
<p>
<a href="http://jakarta.apache.org/velocity">Jakarta Velocity</a>
implements
a similar expression language.
</p>
</section>
+
+ <section name="Anyone Using It Yet?">
+ <p>
+ <a href="http://jakarta.apache.org/commons/jelly.html">Jelly</a>
+ </p>
+ </section>
</body>
</document>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]