You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by js...@apache.org on 2001/06/05 10:35:50 UTC
cvs commit: jakarta-taglibs/io/doc/web io.html
jstrachan 01/06/05 01:35:50
Modified: io/doc/web io.html
Log:
Updated documentation
Revision Changes Path
1.5 +808 -797 jakarta-taglibs/io/doc/web/io.html
Index: io.html
===================================================================
RCS file: /home/cvs/jakarta-taglibs/io/doc/web/io.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- io.html 2001/05/10 11:37:44 1.4
+++ io.html 2001/06/05 08:35:47 1.5
@@ -1,110 +1,120 @@
<html>
+
<head>
- <meta name="author" content="James Strachan">
- <title>Jakarta Project: IO Tag Library</title>
- <link type="text/css" href="taglib.css" rel="stylesheet">
- </head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="author" content="James Strachan">
+<title>Jakarta Project: IO Tag Library</title>
+<link type="text/css" href="taglib.css" rel="stylesheet">
+</head>
+
<body>
- <h1>Jakarta Project: IO Tag library</h1>
- <h3 class="middle">Version: 1.0</h3>
- <h3>Table of Contents</h3>
- <a href="#overview">Overview</a>
- <br>
- <a href="#requirements">Requirements</a>
- <br>
- <a href="#config">Configuration</a>
- <br>
- <a href="#summary">Tag Summary</a>
- <br>
- <a href="#reference">Tag Reference</a>
- <br>
- <a href="#examples">Examples</a>
- <br>
- <a href="#javadocs">Javadocs</a>
- <br>
- <a href="#history">Revision History</a>
- <br>
- <a name="overview"></a>
- <h3>Overview</h3>
- <p>
+<h1>Jakarta Project: IO Tag library</h1>
+<h3 class="middle">Version: 1.0</h3>
+<h3>Table of Contents</h3>
+<a href="#overview">Overview</a>
+<br>
+<a href="#requirements">Requirements</a>
+<br>
+<a href="#config">Configuration</a>
+<br>
+<a href="#summary">Tag Summary</a>
+<br>
+<a href="#reference">Tag Reference</a>
+<br>
+<a href="#examples">Examples</a>
+<br>
+<a href="#javadocs">Javadocs</a>
+<br>
+<a href="#history">Revision History</a>
+<br>
+<a name="overview"></a>
+<h3>Overview</h3>
+<p>
The IO library allows URLs and HTTP requests to be performed using JSP
custom tags. This allows JSP to be used to perform HTTP GETs or PUT
operations and to make XML-RPC and SOAP requests.
</p>
- <p>Currently the IO library supports any protocols supported by the Java URL
+<p>Currently the IO library supports any protocols supported by the Java URL
class such as</p>
- <ul>
- <li>file system</li>
- <li>FTP</li>
- <li>HTTP</li>
- <li>HTTPS</li>
- <li>XML-RPC</li>
- <li>SOAP</li>
+<ul>
+
+<li>file system</li>
+
+<li>FTP</li>
+
+<li>HTTP</li>
+
+<li>HTTPS</li>
+
+<li>XML-RPC</li>
+
+<li>SOAP</li>
+
</ul>
- <p>
+<p>
For example if you wanted to include the README from the GNU FTP site in
your JSP output you could do:-
</p>
- <pre>
+<pre>
<io:request url="ftp://ftp.gnu.org/README"/>
</pre>
- <p>
+<p>
More likely is you'll want to include the result of a HTTP request. For
example to include the home page of the Jakarta project in your JSP output
you could use:-
</p>
- <pre>
+<pre>
<io:request url="http://jakarta.apache.org"/>
</pre>
- <p>
+<p>
This single tag is surprisingly useful. <jsp:include> is only capable of
including a servlet that is in your current web application. The
<io:request> can be used to make 'server side include' style calls to any
web server anywhere for any resource.
</p>
- <p>
+<p>
In the case of HTTP based calls, the default is to perform a HTTP GET. To
make it easier to do other forms of HTTP requests such as POST and PUT there
is another tag specialised for HTTP. The previous JSP could be replaced by
the more verbose:-
</p>
- <pre>
+<pre>
<io:http url="http://jakarta.apache.org" action="GET"/>
</pre>
- <p>
+<p>
To perform a HTTP POST we need to specify the data to be POSTED to the
remote server.
</p>
- <pre>
+<pre>
<io:http url="something" action="POST">
<io:pipe>
data to be posted....
</io:pipe>
</io:xmlrpc>
</pre>
- <p>
+<p>
Here we use a nested <io:pipe> tag to capture its body content for the data
to be posted. The IO tags can be "piped" together like unix processes such
that the data to be posted can be specified using an inner <io:request> tag.
For example the following example reads a file "foo.txt" and posts it to the
"bar" web service and displays the result in your JSP output:-
</p>
- <pre>
+<pre>
<io:http url="bar" action="POST">
<io:request url="file://somewhere/foo.txt"/>
</io:xmlrpc>
</pre>
- <p>
+<p>
The pipelining of tags will be discussed in more detail below.
The new wave of Web Services are based on XML and usually use HTTP POST to
send a request to a web service and a response is returned as XML. Calling
web services with the IO tags is easy.
</p>
- <p>
+<p>
Here's an example of calling an XML-RPC web service using the <io:http>
tag...
</p>
- <pre>
+<pre>
<io:http url="someXmlRpcUrl">
<io:header name="Content-Type" value="text/xml"/>
<io:pipe>
@@ -119,17 +129,17 @@
</io:pipe>
</io:http>
</pre>
- <p>
+<p>
Notice here that we've added an <io:header> tag to set the content type of
the posted data to be the XML mime type.
</p>
- <p>
+<p>
To make it easier when calling XML-RPC and SOAP based Web Services there are
2 new tags to wrap up calling XML-RPC and SOAP protocols. They allow more
brief JSP code hiding some of the HTTP detail of the protocols. For example
here's the same request again using <io:xmlrpc> tag instead:-
</p>
- <pre>
+<pre>
<io:xmlrpc url="someXmlRpcUrl">
<io:pipe>
<methodCall>
@@ -143,11 +153,11 @@
</io:pipe>
</io:xmlrpc>
</pre>
- <p>
+<p>
And here is a SOAP request using the <io:soap> to request a fortune cookie
from a SOAP web service on the net:-
</p>
- <pre>
+<pre>
<io:soap
url="http://www.lemurlabs.com/rpcrouter"
SOAPAction="urn:lemurlabs-Fortune">
@@ -162,61 +172,61 @@
</io:pipe>
</io:soap>
</pre>
- <h4>Pipelining</h4>
- <p>
+<h4>Pipelining</h4>
+<p>
You can nest JSP custom tags together so that the output of one tag serves
as the input to another tag. For example:-
</p>
- <pre>
+<pre>
<foo:a>
<foo:b/>
</foo:a>
</pre>
- <p>
+<p>
This is quite like the piping that is available on Unix platforms, the
output of program "b" can be piped into the input of program "a" via the
command line:-
</p>
- <pre>
+<pre>
b | a
</pre>
- <p>
+<p>
To be able to process the output of <foo:b> the <foo:a> tag must be a
BodyTag. A BodyContent object will be created and the content of the <foo:a>
tag, including the output of the <foo:b> tag, will be written to the
BodyContent object. This mechanism can cause unwanted double buffering. For
example consider this pseudo JSP code:-
</p>
- <pre>
+<pre>
<foo:searchAndReplace from="Spain" to="London">
<file:read filename="Spain.txt"/>
<file:write filename="London.txt"/>
</foo:searchAndReplace>
</pre>
- <p>
+<p>
In the above example, all of the Spain.txt file will be read into memory
into the BodyContent before the <foo:searchAndReplace> tag begins to process
the file. This is unnecessary double buffering and a bad use of streams.
Even worse is, if the file is big, you could run out of memory in a heavily
loaded server.
</p>
- <p>
+<p>
The IO tag library currently has a "tag pipelining" proposal integrated into it.
This proposal is the work of from Pierre Delisle and James Strachan and is
intended to avoid this unnecessary double buffering.
</p>
- <h4>Tag Pipelining Proposal</h4>
- <p>
+<h4>Tag Pipelining Proposal</h4>
+<p>
The basic idea is that in the example below, the <file:read> tag should be
able to pass a Reader object straight into the <foo:searchAndReplace> tag
for it to use directly and thus avoiding unnecessary double buffering.
</p>
- <pre>
+<pre>
<foo:searchAndReplace from="foo" to="bar">
<file:read file="foo.txt"/>
</foo:searchAndReplace>
</pre>
- <p>
+<p>
Not only does this optimise away double buffering, but it allows any inner
tag produce the Reader object used by the <foo:searchAndReplace> tag. This
makes the <foo:searchAndReplace> really reusable as it can take any Reader,
@@ -224,46 +234,46 @@
It provides a clean separation of responsibility between "transformer" tags
which process information and creators of Reader and Writer objects.
</p>
- <p>
+<p>
How this Reader and Writer passing mechanism should work and what the API
should look like is still an active area of discussion. A brief overview of
my current proposal now follows. Please check out taglibs-dev for the latest
developments ;-)
</p>
- <p>
+<p>
A tag which can consume textual input should implement the following
interface:-
</p>
- <pre>
+<pre>
public interface PipeConsumer {
public void setReader( Reader reader );
}
</pre>
- <p>
+<p>
A tag which can produce textual input should implement the following
interface:-
</p>
- <pre>
+<pre>
public interface PipeProducer {
public void setWriter( Writer writer );
}
</pre>
- <p>
+<p>
These two interfaces allow "transformer" tags to be written such that their
Reader and Writer objects can be configured in a flexible variety of ways.
These "transformer" tags can also be pipelined together in an efficient
manner similar to the pipelining of Unix processes.
</p>
- <p>
+<p>
Examples of transformer tags could be to perform text based search and
replace, screen scraping, styling of XML or the calling some external web
service (via HTTP, XML-RPC, SOAP or whatever) and returning the results.
</p>
- <p>
+<p>
A possible base class for a transformer tag could look something like the
following:-
</p>
- <pre>
+<pre>
public abstract class TransformerTagSupport
extends BodyTagSupport
implements PipeConsumer, PipeProducer {
@@ -304,13 +314,13 @@
) throws JspException;
}
</pre>
- <p>
+<p>
A transformer tag could have its reader and/or writer configured via scriptlet expressions in JSP.
</p>
- <pre>
+<pre>
<foo:myTransformer reader="<%= new MyReader() %>" writer="<%= new MyWriter() %>"/>
</pre>
- <p>
+<p>
Or the transformer tag could have an inner tag set its Reader or Writer.
The inner tag could use the PipeConsumer or PipeProducer interfaces directly it
could use
@@ -319,29 +329,29 @@
are used, the Reader from the tags BodyContent is used with the Writer
from the current PageContext.
</p>
- <p>
+<p>
So the following would work without any direct pipelining:-
</p>
- <pre>
+<pre>
<foo:searchAndReplace from="Spain" to="London">
The rain in Spain
</foo:searchAndReplace>
</pre>
- <p>
+<p>
Or inner tags could provide the Reader and Writer:-
</p>
- <pre>
+<pre>
<foo:searchAndReplace from="Spain" to="London">
<file:read filename="Spain.txt"/>
<file:write filename="London.txt"/>
</foo:searchAndReplace>
</pre>
- <p>
+<p>
This pipelining proposal has been implemented in the IO tag library so
that the IO tags can be pipelined together efficiently and flexibly
without unnecessary double buffering.
</p>
- <p>
+<p>
Sometimes a transformer tag could accept multiple inputs (or outputs). This
is rare but can happen. Currently there's an <xsl:apply> tag in the XSL tag
library in the jakarta-taglibs project which does exactly this. To get
@@ -350,7 +360,7 @@
be piped into it, but it will use introspection on its outer tag to pass the
Reader through the pipe. For example:-
</p>
- <pre>
+<pre>
<xsl:apply>
<io:set property="xslReader">
<io:request url="someStylesheet.xsl"/>
@@ -360,10 +370,10 @@
</io:set>
</xsl:apply>
</pre>
- <p>
+<p>
Here's an example of more intense pipelining,
</p>
- <pre>
+<pre>
<xsl:apply xsl="someStylesheet.xsl">
<io:soap url="someSoapURL" SOAPAction="doSomething">
<xsl:apply xsl="xmlRpcToSoap.xsl">
@@ -384,7 +394,7 @@
</io:soap>
</io:xmlrpc>
</pre>
- <p>
+<p>
The above example looks like a relatively small block of XML but its
actually doing quite a lot. Reading from inside-out, its calling an XML-RPC
service with some XML data then using XSLT to style the result into a SOAP
@@ -392,21 +402,21 @@
SOAP request is then styled again using XSLT and output to the users
browser.
</p>
- <a name="requirements"></a>
- <h3>Requirements</h3>
- <p>
+<a name="requirements"></a>
+<h3>Requirements</h3>
+<p>
This custom tag library requires no software other than a servlet container
that supports the JavaServer Pages Specification, version 1.1 or higher.
</p>
- <a name="config"></a>
- <h3>Configuration</h3>
- <p>Follow these steps to configure your web application with this tag library:</p>
- <ul>
- <li>Copy the tag library descriptor file to the /WEB-INF subdirectory
+<a name="config"></a>
+<h3>Configuration</h3>
+<p>Follow these steps to configure your web application with this tag library:</p>
+<ul>
+<li>Copy the tag library descriptor file to the /WEB-INF subdirectory
of your web application.</li>
- <li>Copy the tag library JAR file to the /WEB-INF/lib subdirectory
+<li>Copy the tag library JAR file to the /WEB-INF/lib subdirectory
of your web application.</li>
- <li>Add a <taglib> element to your web application deployment
+<li>Add a <taglib> element to your web application deployment
descriptor in /WEB-INF/web.xml like this:
<pre>
<taglib>
@@ -414,695 +424,695 @@
<taglib-location>/WEB-INF/io.tld</taglib-location>
</taglib>
</pre>
- </li>
- </ul>
- <p>To use the tags from this library in your JSP pages, add the following
+</li>
+</ul>
+<p>To use the tags from this library in your JSP pages, add the following
directive at the top of each page: </p>
- <pre>
+<pre>
<%@ taglib uri="http://jakarta.apache.org/taglibs/io-1.0" prefix="io" %>
</pre>
- <p>where "<i>io</i>" is the tag name prefix you wish to use for tags
+<p>where "<i>io</i>" is the tag name prefix you wish to use for tags
from this library. You can change this value to any prefix you like.</p>
- <a name="summary"></a>
- <h3>Tag Summary</h3>
- <table summary="summary list of tags with short description of each.">
- <tr>
- <td><a href="#pipe">pipe</a></td><td>
+<a name="summary"></a>
+<h3>Tag Summary</h3>
+<table summary="summary list of tags with short description of each.">
+<tr>
+<td><a href="#pipe">pipe</a></td><td>
Acts like a Unix pipe between tags that are not capable of piping themselves.
A pipe can take some input or some output or both.
If no input is specified then its body content is used.
If no output is specified then the current output is used.
</td>
- </tr>
- <tr>
- <td><a href="#set">set</a></td><td>
+</tr>
+<tr>
+<td><a href="#set">set</a></td><td>
Sets the property on its parent tag.
Either the body of this tag is used as the value or a PipeConsumer
can be included in my body.
</td>
- </tr>
- <tr>
- <td><a href="#get">get</a></td><td>
+</tr>
+<tr>
+<td><a href="#get">get</a></td><td>
Returns the bean or bean property and pipes it into its parent PipeConsumer tag.
</td>
- </tr>
- <tr>
- <td><a href="#request">request</a></td><td>
+</tr>
+<tr>
+<td><a href="#request">request</a></td><td>
Requests the content of the given URL.
</td>
- </tr>
- <tr>
- <td><a href="#http">http</a></td><td>
+</tr>
+<tr>
+<td><a href="#http">http</a></td><td>
Performs a HTTP request on the given URL with the specified action and optional body.
If no action is specified then it defaults to "GET".
</td>
- </tr>
- <tr>
- <td><a href="#header">header</a></td><td>
+</tr>
+<tr>
+<td><a href="#header">header</a></td><td>
Defines a URL / HTTP header for the current request tag.
The value of the header can be specified as an attribute
otherwise the value of the tags body is taken instead.
</td>
- </tr>
- <tr>
- <td><a href="#param">param</a></td><td>
+</tr>
+<tr>
+<td><a href="#param">param</a></td><td>
Defines a query argument for the URL of the current request.
The value of the parameter can be specified as an attribute
otherwise the value of the tags body is taken instead.
</td>
- </tr>
- <tr>
- <td><a href="#soap">soap</a></td><td>
+</tr>
+<tr>
+<td><a href="#soap">soap</a></td><td>
Performs a HTTP SOAP request on the given URL, SOAPAction and body.
</td>
- </tr>
- <tr>
- <td><a href="#xmlrpc">xmlrpc</a></td><td>
+</tr>
+<tr>
+<td><a href="#xmlrpc">xmlrpc</a></td><td>
Performs an XML RPC request on the given URL.
</td>
- </tr>
- <tr>
- <td colspan="2"> </td>
- </tr>
- </table>
- <a name="reference"></a>
- <h3>Tag Reference</h3>
- <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
- <tr>
- <td colspan="2">
- <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
- <tr>
- <td><b><font size="+1"><a name="pipe">pipe</a></font></b></td><td align="right">Availability: version 1.0</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="2">
+</tr>
+<tr>
+<td colspan="2"> </td>
+</tr>
+</table>
+<a name="reference"></a>
+<h3>Tag Reference</h3>
+<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
+<tr>
+<td colspan="2">
+<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
+<tr>
+<td><b><font size="+1"><a name="pipe">pipe</a></font></b></td><td align="right">Availability: version 1.0</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
Acts like a Unix pipe between tags that are not capable of piping themselves.
A pipe can take some input or some output or both.
If no input is specified then its body content is used.
If no output is specified then the current output is used.
</td>
- </tr>
- <tr>
- <td width="2%"> </td><td width="98%">
- <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
- <tr>
- <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.PipeTag</td>
- </tr>
- <tr>
- <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
- </tr>
- <tr>
- <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
- </tr>
- <tr>
- <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
- </tr>
- <tr>
- <td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
- </tr>
- <tr>
- <td width="20%"> </td><td width="80%">
- <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
- <tr>
- <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>reader</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>writer</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
- <ol>
- <li>
- <span class="comment"><%--
+</tr>
+<tr>
+<td width="2%"> </td><td width="98%">
+<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
+<tr>
+<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.PipeTag</td>
+</tr>
+<tr>
+<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
+</tr>
+<tr>
+<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
+</tr>
+<tr>
+<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
+</tr>
+<tr>
+<td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
+</tr>
+<tr>
+<td width="20%"> </td><td width="80%">
+<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
+<tr>
+<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>reader</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>writer</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
+<ol>
+<li>
+<span class="comment"><%--
--%></span>
- <br>
- <p>
- <pre>
- <code>
+<br>
+<p>
+<pre>
+<code>
<io:pipe input="<%= request.getReader() %>"/>
</code>
- </pre>
- </p>
- </li>
- </ol>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
- <tr>
- <td colspan="2">
- <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
- <tr>
- <td><b><font size="+1"><a name="set">set</a></font></b></td><td align="right">Availability: version 1.0</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="2">
+</pre>
+</p>
+</li>
+</ol>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
+<tr>
+<td colspan="2">
+<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
+<tr>
+<td><b><font size="+1"><a name="set">set</a></font></b></td><td align="right">Availability: version 1.0</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
Sets the property on its parent tag.
Either the body of this tag is used as the value or a PipeConsumer
can be included in my body.
</td>
- </tr>
- <tr>
- <td width="2%"> </td><td width="98%">
- <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
- <tr>
- <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.SetTag</td>
- </tr>
- <tr>
- <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
- </tr>
- <tr>
- <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
- </tr>
- <tr>
- <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
- </tr>
- <tr>
- <td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
- </tr>
- <tr>
- <td width="20%"> </td><td width="80%">
- <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
- <tr>
- <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>property</b></td><td width="20%">true</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>reader</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
- <ol>
- <li>
- <span class="comment"><%--
+</tr>
+<tr>
+<td width="2%"> </td><td width="98%">
+<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
+<tr>
+<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.SetTag</td>
+</tr>
+<tr>
+<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
+</tr>
+<tr>
+<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
+</tr>
+<tr>
+<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
+</tr>
+<tr>
+<td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
+</tr>
+<tr>
+<td width="20%"> </td><td width="80%">
+<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
+<tr>
+<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>property</b></td><td width="20%">true</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>reader</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
+<ol>
+<li>
+<span class="comment"><%--
--%></span>
- <br>
- <p>
- <pre>
- <code>
+<br>
+<p>
+<pre>
+<code>
<io:set name="url">some text with mixed tags & expressions</io:set>
</code>
- </pre>
- </p>
- </li>
- </ol>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
- <tr>
- <td colspan="2">
- <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
- <tr>
- <td><b><font size="+1"><a name="get">get</a></font></b></td><td align="right">Availability: version 1.0</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="2">
+</pre>
+</p>
+</li>
+</ol>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
+<tr>
+<td colspan="2">
+<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
+<tr>
+<td><b><font size="+1"><a name="get">get</a></font></b></td><td align="right">Availability: version 1.0</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
Returns the bean or bean property and pipes it into its parent PipeConsumer tag.
</td>
- </tr>
- <tr>
- <td width="2%"> </td><td width="98%">
- <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
- <tr>
- <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.GetTag</td>
- </tr>
- <tr>
- <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
- </tr>
- <tr>
- <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
- </tr>
- <tr>
- <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
- </tr>
- <tr>
- <td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
- </tr>
- <tr>
- <td width="20%"> </td><td width="80%">
- <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
- <tr>
- <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>property</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
- <ol>
- <li>
- <span class="comment"><%--
+</tr>
+<tr>
+<td width="2%"> </td><td width="98%">
+<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
+<tr>
+<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.GetTag</td>
+</tr>
+<tr>
+<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
+</tr>
+<tr>
+<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
+</tr>
+<tr>
+<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
+</tr>
+<tr>
+<td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
+</tr>
+<tr>
+<td width="20%"> </td><td width="80%">
+<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
+<tr>
+<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>property</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
+<ol>
+<li>
+<span class="comment"><%--
--%></span>
- <br>
- <p>
- <pre>
- <code>
+<br>
+<p>
+<pre>
+<code>
<io:get name="something" property"bar"/>
</code>
- </pre>
- </p>
- </li>
- </ol>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
- <tr>
- <td colspan="2">
- <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
- <tr>
- <td><b><font size="+1"><a name="request">request</a></font></b></td><td align="right">Availability: version 1.0</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="2">
+</pre>
+</p>
+</li>
+</ol>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
+<tr>
+<td colspan="2">
+<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
+<tr>
+<td><b><font size="+1"><a name="request">request</a></font></b></td><td align="right">Availability: version 1.0</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
Requests the content of the given URL.
</td>
- </tr>
- <tr>
- <td width="2%"> </td><td width="98%">
- <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
- <tr>
- <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLTag</td>
- </tr>
- <tr>
- <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
- </tr>
- <tr>
- <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%"></td>
- </tr>
- <tr>
- <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
- </tr>
- <tr>
- <td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
- </tr>
- <tr>
- <td width="20%"> </td><td width="80%">
- <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
- <tr>
- <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>output</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>input</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
- <ol>
- <li>
- <span class="comment"><%--
+</tr>
+<tr>
+<td width="2%"> </td><td width="98%">
+<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
+<tr>
+<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLTag</td>
+</tr>
+<tr>
+<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
+</tr>
+<tr>
+<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%"></td>
+</tr>
+<tr>
+<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
+</tr>
+<tr>
+<td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
+</tr>
+<tr>
+<td width="20%"> </td><td width="80%">
+<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
+<tr>
+<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>output</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>input</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
+<ol>
+<li>
+<span class="comment"><%--
--%></span>
- <br>
- <p>
- <pre>
- <code>
+<br>
+<p>
+<pre>
+<code>
<io:url url="/WEB-INF/foo.xml"/>
</code>
- </pre>
- </p>
- </li>
- </ol>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
- <tr>
- <td colspan="2">
- <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
- <tr>
- <td><b><font size="+1"><a name="http">http</a></font></b></td><td align="right">Availability: version 1.0</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="2">
+</pre>
+</p>
+</li>
+</ol>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
+<tr>
+<td colspan="2">
+<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
+<tr>
+<td><b><font size="+1"><a name="http">http</a></font></b></td><td align="right">Availability: version 1.0</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
Performs a HTTP request on the given URL with the specified action and optional body.
If no action is specified then it defaults to "GET".
</td>
- </tr>
- <tr>
- <td width="2%"> </td><td width="98%">
- <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
- <tr>
- <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.HttpTag</td>
- </tr>
- <tr>
- <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
- </tr>
- <tr>
- <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
- </tr>
- <tr>
- <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
- </tr>
- <tr>
- <td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
- </tr>
- <tr>
- <td width="20%"> </td><td width="80%">
- <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
- <tr>
- <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>action</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
- <ol>
- <li>
- <span class="comment"><%--
+</tr>
+<tr>
+<td width="2%"> </td><td width="98%">
+<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
+<tr>
+<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.HttpTag</td>
+</tr>
+<tr>
+<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
+</tr>
+<tr>
+<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
+</tr>
+<tr>
+<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
+</tr>
+<tr>
+<td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
+</tr>
+<tr>
+<td width="20%"> </td><td width="80%">
+<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
+<tr>
+<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>action</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
+<ol>
+<li>
+<span class="comment"><%--
--%></span>
- <br>
- <p>
- <pre>
- <code>
+<br>
+<p>
+<pre>
+<code>
<io:http url="http://jakarta.apache.org" action="GET"/>
</code>
- </pre>
- </p>
- </li>
- </ol>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
- <tr>
- <td colspan="2">
- <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
- <tr>
- <td><b><font size="+1"><a name="header">header</a></font></b></td><td align="right">Availability: version 1.0</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="2">
+</pre>
+</p>
+</li>
+</ol>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
+<tr>
+<td colspan="2">
+<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
+<tr>
+<td><b><font size="+1"><a name="header">header</a></font></b></td><td align="right">Availability: version 1.0</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
Defines a URL / HTTP header for the current request tag.
The value of the header can be specified as an attribute
otherwise the value of the tags body is taken instead.
</td>
- </tr>
- <tr>
- <td width="2%"> </td><td width="98%">
- <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
- <tr>
- <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLHeaderTag</td>
- </tr>
- <tr>
- <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
- </tr>
- <tr>
- <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
- </tr>
- <tr>
- <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
- </tr>
- <tr>
- <td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
- </tr>
- <tr>
- <td width="20%"> </td><td width="80%">
- <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
- <tr>
- <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>value</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
- <ol>
- <li>
- <span class="comment"><%--
+</tr>
+<tr>
+<td width="2%"> </td><td width="98%">
+<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
+<tr>
+<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLHeaderTag</td>
+</tr>
+<tr>
+<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
+</tr>
+<tr>
+<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
+</tr>
+<tr>
+<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
+</tr>
+<tr>
+<td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
+</tr>
+<tr>
+<td width="20%"> </td><td width="80%">
+<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
+<tr>
+<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>value</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
+<ol>
+<li>
+<span class="comment"><%--
--%></span>
- <br>
- <p>
- <pre>
- <code>
+<br>
+<p>
+<pre>
+<code>
<io:http url="http://jakarta.apache.org" action="GET"/>
<io:header name="Content-Type" value="text/xml"/>
</io:http>
</code>
- </pre>
- </p>
- </li>
- </ol>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
- <tr>
- <td colspan="2">
- <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
- <tr>
- <td><b><font size="+1"><a name="param">param</a></font></b></td><td align="right">Availability: version 1.0</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="2">
+</pre>
+</p>
+</li>
+</ol>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
+<tr>
+<td colspan="2">
+<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
+<tr>
+<td><b><font size="+1"><a name="param">param</a></font></b></td><td align="right">Availability: version 1.0</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
Defines a query argument for the URL of the current request.
The value of the parameter can be specified as an attribute
otherwise the value of the tags body is taken instead.
</td>
- </tr>
- <tr>
- <td width="2%"> </td><td width="98%">
- <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
- <tr>
- <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLParameterTag</td>
- </tr>
- <tr>
- <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
- </tr>
- <tr>
- <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
- </tr>
- <tr>
- <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">Must be specified before any <http:header> or <http:body> tags</td>
- </tr>
- <tr>
- <td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
- </tr>
- <tr>
- <td width="20%"> </td><td width="80%">
- <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
- <tr>
- <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>value</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
- <ol>
- <li>
- <span class="comment"><%--
+</tr>
+<tr>
+<td width="2%"> </td><td width="98%">
+<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
+<tr>
+<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLParameterTag</td>
+</tr>
+<tr>
+<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
+</tr>
+<tr>
+<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
+</tr>
+<tr>
+<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">Must be specified before any <http:header> or <http:body> tags</td>
+</tr>
+<tr>
+<td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
+</tr>
+<tr>
+<td width="20%"> </td><td width="80%">
+<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
+<tr>
+<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>value</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
+<ol>
+<li>
+<span class="comment"><%--
--%></span>
- <br>
- <p>
- <pre>
- <code>
+<br>
+<p>
+<pre>
+<code>
<io:http url="http://jakarta.apache.org" action="GET"/>
<io:header name="Content-Type" value="text/xml"/>
</io:http>
</code>
- </pre>
- </p>
- </li>
- </ol>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
- <tr>
- <td colspan="2">
- <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
- <tr>
- <td><b><font size="+1"><a name="soap">soap</a></font></b></td><td align="right">Availability: version 1.0</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="2">
+</pre>
+</p>
+</li>
+</ol>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
+<tr>
+<td colspan="2">
+<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
+<tr>
+<td><b><font size="+1"><a name="soap">soap</a></font></b></td><td align="right">Availability: version 1.0</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
Performs a HTTP SOAP request on the given URL, SOAPAction and body.
</td>
- </tr>
- <tr>
- <td width="2%"> </td><td width="98%">
- <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
- <tr>
- <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.HttpSoapTag</td>
- </tr>
- <tr>
- <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
- </tr>
- <tr>
- <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
- </tr>
- <tr>
- <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
- </tr>
- <tr>
- <td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
- </tr>
- <tr>
- <td width="20%"> </td><td width="80%">
- <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
- <tr>
- <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>SOAPAction</b></td><td width="20%">true</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
- <ol>
- <li>
- <span class="comment"><%--
+</tr>
+<tr>
+<td width="2%"> </td><td width="98%">
+<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
+<tr>
+<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.HttpSoapTag</td>
+</tr>
+<tr>
+<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
+</tr>
+<tr>
+<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
+</tr>
+<tr>
+<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
+</tr>
+<tr>
+<td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
+</tr>
+<tr>
+<td width="20%"> </td><td width="80%">
+<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
+<tr>
+<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>SOAPAction</b></td><td width="20%">true</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
+<ol>
+<li>
+<span class="comment"><%--
--%></span>
- <br>
- <p>
- <pre>
- <code>
+<br>
+<p>
+<pre>
+<code>
<io:soap
url="http://services.xmethods.net:80/perl/soaplite.cgi"
SOAPAction="urn:xmethodsBabelFish#BabelFish">
@@ -1120,80 +1130,80 @@
</io:body>
</io:soap>
</code>
- </pre>
- </p>
- </li>
- </ol>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
- <tr>
- <td colspan="2">
- <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
- <tr>
- <td><b><font size="+1"><a name="xmlrpc">xmlrpc</a></font></b></td><td align="right">Availability: version 1.0</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="2">
+</pre>
+</p>
+</li>
+</ol>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
+<tr>
+<td colspan="2">
+<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
+<tr>
+<td><b><font size="+1"><a name="xmlrpc">xmlrpc</a></font></b></td><td align="right">Availability: version 1.0</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
Performs an XML RPC request on the given URL.
</td>
- </tr>
- <tr>
- <td width="2%"> </td><td width="98%">
- <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
- <tr>
- <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.XmlRpcTag</td>
- </tr>
- <tr>
- <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
- </tr>
- <tr>
- <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
- </tr>
- <tr>
- <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
- </tr>
- <tr>
- <td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
- </tr>
- <tr>
- <td width="20%"> </td><td width="80%">
- <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
- <tr>
- <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- <tr bgcolor="#cccccc">
- <td width="40%"><b>userAgent</b></td><td width="20%">false</td><td width="40%">true</td>
- </tr>
- <tr>
- <td colspan="3"></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
- <ol>
- <li>
- <span class="comment"><%--
+</tr>
+<tr>
+<td width="2%"> </td><td width="98%">
+<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
+<tr>
+<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.XmlRpcTag</td>
+</tr>
+<tr>
+<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
+</tr>
+<tr>
+<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
+</tr>
+<tr>
+<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
+</tr>
+<tr>
+<td width="20%"><span class="attributes">Attributes</span></td><td width="80%"> </td>
+</tr>
+<tr>
+<td width="20%"> </td><td width="80%">
+<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
+<tr>
+<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+<tr bgcolor="#cccccc">
+<td width="40%"><b>userAgent</b></td><td width="20%">false</td><td width="40%">true</td>
+</tr>
+<tr>
+<td colspan="3"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
+<ol>
+<li>
+<span class="comment"><%--
--%></span>
- <br>
- <p>
- <pre>
- <code>
+<br>
+<p>
+<pre>
+<code>
<io:xmlrpc url="/RPC2">
<io:body>
<?xml version="1.0"?>
@@ -1208,30 +1218,31 @@
</io:body>
</io:xmlrpc>
</code>
- </pre>
- </p>
- </li>
- </ol>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <a name="examples">
- <h3>Examples</h3>
- </a>
- <p>See the example application io-examples.war for examples of the usage
+</pre>
+</p>
+</li>
+</ol>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<a name="examples">
+<h3>Examples</h3>
+</a>
+<p>See the example application io-examples.war for examples of the usage
of the tags from this custom tag library.</p>
- <a name="javadocs">
- <h3>Java Docs</h3>
- </a>
- <p>Java programmers can view the java class documentation for this tag library
+<a name="javadocs">
+<h3>Java Docs</h3>
+</a>
+<p>Java programmers can view the java class documentation for this tag library
as <a href="javadoc/index.html">javadocs</a>.</p>
- <a name="history">
- <h3>Revision History</h3>
- </a>
- <p>Review the complete <a href="changes.html">revision history</a> of this tag
+<a name="history">
+<h3>Revision History</h3>
+</a>
+<p>Review the complete <a href="changes.html">revision history</a> of this tag
library.</p>
- </body>
+</body>
+
</html>