| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| |
| <!-- |
| Copyright 1999-2004 The Apache Software Foundation |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| |
| <!-- Content Stylesheet for Site --> |
| |
| |
| <!-- start the processing --> |
| <!-- ====================================================================== --> |
| <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! --> |
| <!-- Main Page Section --> |
| <!-- ====================================================================== --> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> |
| |
| <meta name="author" value="Jon S. Stevens"> |
| <meta name="email" value="jon@latchkey.com"> |
| |
| |
| |
| |
| <title>Velocity - You make the decision - Taglibs</title> |
| </head> |
| |
| <body bgcolor="#ffffff" text="#000000" link="#525D76"> |
| <table border="0" width="100%" cellspacing="0"> |
| <!-- TOP IMAGE --> |
| <tr> |
| <td align="left"> |
| <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a> |
| </td> |
| <td align="right"> |
| <a href="http://jakarta.apache.org/velocity/"><img src="../images/logo.gif" alt="Velocity" border="0"/></a> |
| </td> |
| </tr> |
| </table> |
| <table border="0" width="100%" cellspacing="4"> |
| <tr><td colspan="2"> |
| <hr noshade="" size="1"/> |
| </td></tr> |
| |
| <tr> |
| <!-- LEFT SIDE NAVIGATION --> |
| <td width="20%" valign="top" nowrap="true"> |
| |
| <!-- ============================================================ --> |
| |
| <p><strong>About</strong></p> |
| <ul> |
| <li> <a href="../index.html">Overview</a> |
| </li> |
| <li> <a href="../getting-started.html">Getting Started</a> |
| </li> |
| <li> <a href="http://jakarta.apache.org/builds/jakarta-velocity/">Download</a> |
| </li> |
| <li> <a href="../install.html">Install</a> |
| </li> |
| <li> <a href="../design.html">Design</a> |
| </li> |
| <li> <a href="../contributors.html">Contributors</a> |
| </li> |
| <li> <a href="../changes.html">ChangeLog</a> |
| </li> |
| <li> <a href="../code-standards.html">Coding Standards</a> |
| </li> |
| <li> <a href="../license.html">License</a> |
| </li> |
| <li> <a href="../todo.html">TODO</a> |
| </li> |
| <li> <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Velocity">Report Issues</a> |
| </li> |
| </ul> |
| <p><strong>Community</strong></p> |
| <ul> |
| <li> <a href="../powered.html">Powered By Velocity</a> |
| </li> |
| <li> <a href="http://jakarta.apache.org/site/getinvolved.html">Get Involved</a> |
| </li> |
| <li> <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a> |
| </li> |
| <li> <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a> |
| </li> |
| </ul> |
| <p><strong>Docs</strong></p> |
| <ul> |
| <li> <a href="../user-guide.html">User's Guide (English)</a> |
| </li> |
| <li> <a href="../user-guide_fi.html">User's Guide (Finnish)</a> |
| </li> |
| <li> <a href="../user-guide_fr.html">User's Guide (French)</a> |
| </li> |
| <li> <a href="../user-guide_es.html">User's Guide (Spanish)</a> |
| </li> |
| <li> <a href="../developer-guide.html">Developer's Guide</a> |
| </li> |
| <li> <a href="../vtl-reference-guide.html">VTL Reference Guide</a> |
| </li> |
| <li> <a href="../specification.html">Specification</a> |
| </li> |
| <li> <a href="../api/index.html">Javadoc</a> |
| </li> |
| </ul> |
| <p><strong>Tools</strong></p> |
| <ul> |
| <li> <a href="../tools/index.html">Velocity Tools</a> |
| </li> |
| <li> <a href="../anakia.html">Anakia : XML->doc tool</a> |
| </li> |
| <li> <a href="../texen.html">Texen : text generation</a> |
| </li> |
| <li> <a href="../dvsl/index.html">DVSL : XML xformation</a> |
| </li> |
| <li> <a href="../veltag.html">Veltag : JSP taglib</a> |
| </li> |
| <li> <a href="../migration.html">Migration to Velocity</a> |
| </li> |
| <li> <a href="../devtools.html">Editors and IDEs</a> |
| </li> |
| </ul> |
| <p><strong>Comparisons</strong></p> |
| <ul> |
| <li> <a href="../ymtd/ymtd.html">YMTD</a> |
| </li> |
| <li> <a href="../differences.html">VM/WM Differences</a> |
| </li> |
| <li> <a href="../casestudy1.html">JSP vs. Velocity</a> |
| </li> |
| <li> <a href="../casestudy2.html">XMLC vs. Velocity</a> |
| </li> |
| </ul> |
| <p><strong>Site Translations</strong></p> |
| <ul> |
| <li> <a href="http://jakarta.apache.org/velocity/">English</a> |
| </li> |
| <li> <a href="http://www.ingrid.org/jajakarta/velocity/velocity-1.2-rc2/docs-ja/index.html">Japanese</a> |
| </li> |
| </ul> |
| </td> |
| <td width="80%" align="left" valign="top"> |
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> |
| <tr><td bgcolor="#525D76"> |
| <font color="#ffffff" face="arial,helvetica,sanserif"> |
| <a name="Taglibs"><strong>Taglibs</strong></a> |
| </font> |
| </td></tr> |
| <tr><td> |
| <blockquote> |
| <p> |
| Taglibs are intended to be the savior for JSP. They are billed as the |
| way to allow one to extend JSP so that there is a nice MVC abstraction |
| while still adding functionality to the base "language". This is where |
| Struts has concentrated a good portion of its efforts by providing a |
| nice taglib library for people to use. |
| </p> |
| <p> |
| The advantage of using taglibs is that they allow you to extend the |
| "language" syntax of JSP to provide the things that are missing from it, |
| but are available in Java. In other words, instead of encouraging people |
| to embed Java code within their pages, this has been now abstracted to |
| encouraging people to embed XML tags in their page. How is this any |
| better than what ColdFusion did with their product? JSP is on the |
| cutting edge of re-inventing the broken wheel. Yea! |
| </p> |
| <p> |
| This is an example that shows how logic would be embedded into your JSP |
| page. It is borrowed directly from the Struts documentation. |
| </p> |
| <div align="left"> |
| <table cellspacing="4" cellpadding="0" border="0"> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#ffffff"><pre> |
| <%@ page language="java" %> |
| <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
| |
| |
| <!-- Is the number guess right? --> |
| <logic:equal parameter="number" value="7"> |
| You guessed right! You win a high speed blender! |
| </logic:equal> |
| |
| |
| <!-- If the number guessed was wrong --> |
| <logic:notEqual parameter="number" value="7"> |
| <!-- Less Than --> |
| <logic:lessThan parameter="number" value="7"> |
| A little higher... |
| </logic:lessThan> |
| <!-- Greater Than --> |
| <logic:greaterThan parameter="number" value="7"> |
| A little lower... |
| </logic:greaterThan> |
| </logic:notEqual> |
| </pre></td> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| </table> |
| </div> |
| <p> |
| The same example using Velocity would be written like this: |
| </p> |
| <div align="left"> |
| <table cellspacing="4" cellpadding="0" border="0"> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#ffffff"><pre> |
| <!-- Is the number guess right? --> |
| #if ( $number == 7 ) |
| You guessed right! You win a high speed blender! |
| #end |
| |
| <!-- If the number guessed was wrong --> |
| #if ( $number != 7 ) |
| <!-- Less Than --> |
| #if ( $number < 7 ) |
| A little higher... |
| <!-- Greater Than --> |
| #elseif ( $number > 7 ) |
| A little lower... |
| #end |
| #end |
| </pre></td> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| </table> |
| </div> |
| <p> |
| Of course this could be written even cleaner as: |
| </p> |
| <div align="left"> |
| <table cellspacing="4" cellpadding="0" border="0"> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#ffffff"><pre> |
| #if($number == 7) |
| You guessed right! You win a high speed blender! |
| #elseif( $number < 7 ) |
| lower |
| #else |
| higher |
| #end |
| </pre></td> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| </table> |
| </div> |
| <p> |
| This really falls into a preferences situation. In other words, which |
| syntax would someone prefer to use? It seems as though the amount of |
| typing required to implement the taglibs approach would be a major |
| deciding factor for many people. One reason is that the more typing that |
| needs to be done, the more chances for errors. Lets continue with |
| another example taken from the Struts documentation: |
| </p> |
| <div align="left"> |
| <table cellspacing="4" cellpadding="0" border="0"> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#ffffff"><pre> |
| <%@ page language="java" %> |
| <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
| <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
| |
| <% |
| java.util.ArrayList list = new java.util.ArrayList(); |
| list.add("First"); |
| list.add("Second"); |
| list.add("Third"); |
| list.add("Fourth"); |
| list.add("Fifth"); |
| pageContext.setAttribute("list", list, PageContext.PAGE_SCOPE); |
| %> |
| |
| <logic:iterate id="myCollectionElement" name="list"> |
| Element Value: <bean:write name="myCollectionElement" /><br /> |
| </logic:iterate> |
| </pre></td> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| </table> |
| </div> |
| <p> |
| It is clear from the Struts example above that the whole strict MVC |
| model has been broken again because a call to |
| <code>java.util.ArrayList</code> and creating an Object is embedding |
| Java code within a template. Compound that with the idea that one needs |
| to place that <code>ArrayList</code> into the <code>pageContext</code> |
| is even more confusing. Not only that but the designer has to remember |
| to use a bunch of cryptic code at the top of the file that makes |
| references to some taglib document as well as declare a prefix |
| attribute. Why do things need to be so overly complicated? |
| </p> |
| <p> |
| The same example using Velocity would be written like this: |
| </p> |
| <div align="left"> |
| <table cellspacing="4" cellpadding="0" border="0"> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#ffffff"><pre> |
| #set ( $list = ["First", "Second", "Third", "Fourth", "Fifth"] ) |
| |
| #foreach ( $item in $list ) |
| Element Value: $item<br /> |
| #end |
| </pre></td> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| </table> |
| </div> |
| <p> |
| Moving on with examples, we come back to the previous <a href="./ymtd-sampleapp.html">sample application</a> provided in Jason |
| Hunter's book that was shown before. This time it has been implemented |
| entirely within the Struts framework. |
| </p> |
| <div align="left"> |
| <table cellspacing="4" cellpadding="0" border="0"> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#ffffff"><pre> |
| <%-- toolview-tag.jsp --%> |
| |
| <%@ taglib uri="/WEB-INF/struts.tld" prefix="struts" %> |
| |
| <% |
| String title = "Tool Listing"; |
| String deck = "A list of content creation tools"; |
| String desc = "Without tools, people are nothing more than animals."; |
| %> |
| |
| <%@ include file="/header.jsp" %> |
| |
| <%@ page session="false" %> |
| <%@ page errorPage="/errorTaker.jsp" %> |
| |
| <%-- Fetch the tools array as a request attribute --%> |
| <jsp:useBean id="tools" class="Tool[]" scope="request"/> |
| |
| <struts:iterate id="tool" collection="<%= tools %>"> |
| <HR SIZE=2 ALIGN=LEFT> |
| |
| <H3> |
| <%-- Automatically HTML-escapes values --%> |
| <struts:property name="tool" property="name" /> |
| |
| <% if (((Tool)tool).isNewWithin(45)) { %> |
| <FONT COLOR=#FF0000><B> (New!) </B></FONT> |
| <% } else if (((Tool)tool).isUpdatedWithin(45)) { %> |
| <FONT COLOR=#FF0000><B> (Updated!) </B></FONT> |
| <% } %> |
| |
| </H3> |
| <A HREF="<struts:property name="tool" property="homeURL"/>"> |
| <struts:property name="tool" property="homeURL"/></A><BR> |
| |
| <%-- Assume don't want HTML in comments --%> |
| <struts:property name="tool" property="comments" /> |
| |
| </struts:iterate> |
| |
| <%@ include file="/footer.jsp" %> |
| </pre></td> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| </table> |
| </div> |
| <p> |
| At this point, we now have a combination of standard JSP tags as well as |
| Struts specific tags. The use of Struts has appeared to clean things up |
| significantly with regards to embedded scriptlets. Note that quite a |
| few of JSP's warts are still shining through. Is it as easy to grok |
| as the Velocity version? |
| </p> |
| <p> |
| Velocity comes in with a simpler soluton that is designed around the |
| idea of a few core template tags. A scripting language is something like |
| PHP which may require months of usage to completely master. A template |
| language is something that can be mastered in just a few hours. This is |
| what differentiates Velocity from being a scripting language vs. a |
| template language. |
| </p> |
| <p> |
| For example, Velocity has the following core template tags (otherwise |
| known as "directives"): |
| </p> |
| <div align="left"> |
| <table cellspacing="4" cellpadding="0" border="0"> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#ffffff"><pre> |
| #if |
| #else |
| #elseif |
| #foreach |
| #set |
| #parse |
| #include |
| </pre></td> |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| <tr> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> |
| </tr> |
| </table> |
| </div> |
| <p> |
| It is possible to add more #directives to Velocity either by adding them |
| directly to the parser or adding them through an API. It is also |
| possible to use a neat feature of Velocity called Velocimacro's which |
| are documented <a href="../user-guide.html#velocimacro">here</a>. |
| </p> |
| <p> |
| Some people suggest that the benefit to JSP and Struts is that it simply |
| extends HTML, which is something that designers already understand. This |
| is a powerful argument. However, the reality is that HTML is not a |
| template language. In other words, there is no logic in HTML. For |
| example, it is not possible to embed conditional statements (like in the |
| very first example above) into HTML. |
| </p> |
| <p> |
| What this means is that Taglibs allow developers to infinitely extend |
| HTML to become much much more than it previously was. Almost like |
| inventing another scripting language. This is reminiscent the early |
| browser wars where each company was implementing their own browser tags. |
| Netscape went so far as to invent the <blink> tag. What did we |
| learn from that? Is that really a good thing? Sure, standardizing |
| taglibs is a great idea. Will it ever become widely adopted? We sure |
| hope so. |
| </p> |
| <p> |
| One last point to make about using a HTML syntax is that this really |
| pigeon holes JSP and Struts into simply being a tool for creating |
| dynamic HTML/XML/WML (ie: tag markup) code. Velocity on the other hand |
| is designed to take as input any type of text (Java, SQL, HTML, etc) and |
| output anything as a result of running it through its processing engine. |
| </p> |
| <p> |
| You make the decision. |
| </p> |
| <p> |
| <strong>[ <a href="ymtd-sampleapp.html">Sample App</a> <- Previous | |
| Next -> <a href="./ymtd-embedded.html">Embedded Usage</a> ] |
| </strong></p> |
| </blockquote> |
| </p> |
| </td></tr> |
| <tr><td><br/></td></tr> |
| </table> |
| </td> |
| </tr> |
| |
| <!-- FOOTER --> |
| <tr><td colspan="2"> |
| <hr noshade="" size="1"/> |
| </td></tr> |
| <tr><td colspan="2"> |
| <div align="center"><font color="#525D76" size="-1"><em> |
| Copyright © 1999-2004, The Apache Software Foundation |
| </em></font></div> |
| </td></tr> |
| </table> |
| </body> |
| </html> |
| <!-- end the processing --> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |