You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by jo...@apache.org on 2003/07/19 08:50:20 UTC
cvs commit: cocoon-site/site/2.1/userdocs/actions actions.html actions.pdf database-actions.html database-actions.pdf sendmail-action.html sendmail-action.pdf session-action.html session-action.pdf
joerg 2003/07/18 23:50:20
Modified: site/2.1/userdocs/actions actions.html actions.pdf
database-actions.html database-actions.pdf
sendmail-action.html sendmail-action.pdf
session-action.html session-action.pdf
Log:
update on action docu
Revision Changes Path
1.5 +294 -292 cocoon-site/site/2.1/userdocs/actions/actions.html
Index: actions.html
===================================================================
RCS file: /home/cvs/cocoon-site/site/2.1/userdocs/actions/actions.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- actions.html 21 May 2003 15:23:33 -0000 1.4
+++ actions.html 19 Jul 2003 06:50:19 -0000 1.5
@@ -1,292 +1,294 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Actions</title>
-<link type="text/css" href="../../skin/page.css" rel="stylesheet">
-</head>
-<body text="#000000" bgcolor="#FFFFFF">
-<!--================= start Navigation Path ==================-->
-<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
-</tr>
-<tr>
-<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-<!--================= end Navigation Path ==================-->
-<!--================= start Banner ==================-->
-<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<!--================= start Group Logo ==================-->
-<td bgcolor="#294563"><a href="http://xml.apache.org"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/group-logo.gif"></a></td>
-<!--================= end Group Logo ==================-->
-<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
-<!--================= end Project Logo ==================-->
-<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
-<form target="_blank" action="http://www.google.com/search" method="get">
-<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
-<tr>
-<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
-<br>
-<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
- the Apache Cocoon site
-
-
- </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
-</tr>
-</table>
-</form>
-</td>
-<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td valign="bottom" bgcolor="#294563" colspan="2">
-<!--================= start Tabs ==================-->
-<div class="tab">
-<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="8"><img alt="" height="8" width="8" src="../../skin/images/spacer.gif"></td><td valign="bottom">
-<table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
-</tr>
-</table>
-</td>
-</tr>
-</table>
-</div>
-<!--================= end Tabs ==================-->
-</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-<!--================= end Banner ==================-->
-<!--================= start Menu, NavBar, Content ==================-->
-<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td valign="top">
-<table summary="menu" border="0" cellspacing="0" cellpadding="0">
-<tr>
-<!--================= start left top NavBar ==================-->
-<td rowspan="3" valign="top">
-<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
-</tr>
-<tr>
-<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-</td>
-<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
-<!--================= start Menu items ==================-->
-<div class="menu">
-<ul>
-<li>
-<font color="#CFDCED">Navigation</font>
-<ul>
-
-<li>
-<a href="../../index.html">Main</a>
-</li>
-
-<li>
-<a href="../index.html">User Documentation</a>
-</li>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Actions</font>
-<ul>
-
-<li>
-<span class="sel"><font color="#ffcc00">Overview</font></span>
-</li>
-
-<li>
-<a href="database-actions.html">Database</a>
-</li>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Default</font>
-<ul>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Core</font>
-<ul>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Optional</font>
-<ul>
-
-<li>
-<a href="session-action.html">Session Action</a>
-</li>
-
-<li>
-<a href="sendmail-action.html">Sendmail Action</a>
-</li>
-
-</ul>
-</li>
-</ul>
-</div>
-<!--================= end Menu items ==================-->
-</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
-</tr>
-<tr>
-<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-</td><td valign="top" width="100%">
-<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
-<!--================= start middle NavBar ==================-->
-<tr>
-<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
-
- </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
-
- </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<!--================= end middle NavBar ==================-->
-<!--================= start Content==================-->
-<tr>
-<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="100%">
-<div class="content">
-<table class="title" summary="">
-<tr>
-<td valign="middle">
-<h1>Actions</h1>
-</td><script Language="Javascript">
-
-function printit(){
-if (window.print) {
- window.print() ;
-} else {
- var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
-document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
- WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
-}
-}
-</script><script Language="Javascript">
-var NS = (navigator.appName == "Netscape");
-var VERSION = parseInt(navigator.appVersion);
-if (VERSION > 3) {
- document.write('<td nowrap="nowrap" width="40" align="center">');
- document.write(' <a class="dida" href="javascript:printit()">');
- document.write(' <img alt="Print this Page" src="../../skin/images/printer.gif" border="0"><br>');
- document.write(' print</a>');
- document.write('</td>');
-}
-</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="actions.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
- PDF</a></td>
-</tr>
-</table>
-<h3>in Cocoon</h3>
-<p>
-<font size="-2">by Carsten Ziegeler</font>
-</p>
-<ul class="minitoc">
-<li>
-<a href="#Goal">Goal</a>
-</li>
-<li>
-<a href="#Overview">Overview</a>
-</li>
-<li>
-<a href="#The+Actions+in+Apache+Cocoon">The Actions in Apache Cocoon</a>
-</li>
-</ul>
-
-<a name="N1001F"></a><a name="Goal"></a>
-<h3>Goal</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>This document lists all of the available actions of Apache Cocoon and
- describes their purpose.</p>
-</div>
-
-
-<a name="N10028"></a><a name="Overview"></a>
-<h3>Overview</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>See the concepts document
- <a href="../concepts/actions.html">Creating and Using Actions</a>.
- </p>
-</div>
-
-<a name="N10035"></a><a name="The+Actions+in+Apache+Cocoon"></a>
-<h3>The Actions in Apache Cocoon</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>Forthcoming...
- </p>
-<ul>
-
-<li>
-<a href="database-actions.html">Database Actions</a>
-</li>
-
-<li>
-<a href="session-action.html">Session Action</a>
-</li>
-
-</ul>
-</div>
-
-</div>
-</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<!--================= end Content==================-->
-</table>
-</td>
-</tr>
-</table>
-<!--================= end Menu, NavBar, Content ==================-->
-<!--================= start Footer ==================-->
-<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
-<tr>
-<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
-</tr>
-<tr>
-<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright ©
- 1999-2003 The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
- document.write(" - "+"Last Published: " + document.lastModified);
- // --></script></font></td>
-</tr>
-<tr>
-<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
-</tr>
-</table>
-<!--================= end Footer ==================-->
-</body>
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Actions</title>
+<link type="text/css" href="../../skin/page.css" rel="stylesheet">
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<!--================= start Navigation Path ==================-->
+<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Navigation Path ==================-->
+<!--================= start Banner ==================-->
+<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<!--================= start Group Logo ==================-->
+<td bgcolor="#294563"><a href=""></a></td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
+<!--================= end Project Logo ==================-->
+<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+<tr>
+<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><input name="Search" value="Search" type="submit">
+<br>
+<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
+ the Apache Cocoon site
+
+
+ </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" bgcolor="#294563" colspan="2">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="6"><img alt="" height="8" width="6" src="../../skin/images/spacer.gif"></td><td valign="bottom">
+<table summary="selected tab" style="height: 1.8em" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</div>
+<!--================= end Tabs ==================-->
+</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Banner ==================-->
+<!--================= start Menu, NavBar, Content ==================-->
+<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top">
+<table summary="menu" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<!--================= start left top NavBar ==================-->
+<td rowspan="3" valign="top">
+<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
+</tr>
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td>
+<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
+<!--================= start Menu items ==================-->
+<div class="menu">
+<ul>
+<li>
+<font color="#CFDCED">Navigation</font>
+<ul>
+
+<li>
+<a href="../../index.html">Main</a>
+</li>
+
+<li>
+<a href="../index.html">User Documentation</a>
+</li>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Actions</font>
+<ul>
+
+<li>
+<span class="sel"><font color="#ffcc00">Overview</font></span>
+</li>
+
+<li>
+<a href="database-actions.html">Database</a>
+</li>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Default</font>
+<ul>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Core</font>
+<ul>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Optional</font>
+<ul>
+
+<li>
+<a href="sendmail-action.html">Sendmail Action</a>
+</li>
+
+<li>
+<a href="session-action.html">Session Action</a>
+</li>
+
+</ul>
+</li>
+</ul>
+</div>
+<!--================= end Menu items ==================-->
+</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
+</tr>
+<tr>
+<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td><td valign="top" width="100%">
+<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
+<!--================= start middle NavBar ==================-->
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+
+
+ </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+
+
+ </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end middle NavBar ==================-->
+<!--================= start Content==================-->
+<tr>
+<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="100%">
+<div class="content">
+<table class="title" summary="">
+<tr>
+<td valign="middle">
+<h1>Actions</h1>
+</td><script Language="Javascript">
+
+function printit(){
+if (window.print) {
+ window.print() ;
+} else {
+ var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+ WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
+}
+}
+</script><script Language="Javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+ document.write('<td nowrap="nowrap" width="40" align="center">');
+ document.write(' <a class="dida" href="javascript:printit()">');
+ document.write(' <img alt="Print this Page" src="../../skin/images/printer.gif" class="skin"><br>');
+ document.write(' print</a>');
+ document.write('</td>');
+}
+</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="actions.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+ PDF</a></td>
+</tr>
+</table>
+<h3>in Cocoon</h3>
+<p>
+<font size="-2">by Carsten Ziegeler</font>
+</p>
+<ul class="minitoc">
+<li>
+<a href="#Goal">Goal</a>
+</li>
+<li>
+<a href="#Overview">Overview</a>
+</li>
+<li>
+<a href="#The+Actions+in+Apache+Cocoon">The Actions in Apache Cocoon</a>
+</li>
+</ul>
+
+<a name="N1001F"></a><a name="Goal"></a>
+<h3>Goal</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>This document lists all of the available actions of Apache Cocoon and
+ describes their purpose.</p>
+</div>
+
+<a name="N10028"></a><a name="Overview"></a>
+<h3>Overview</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>See the concepts document
+ <a href="../concepts/actions.html">Creating and Using Actions</a>.
+ </p>
+</div>
+
+<a name="N10035"></a><a name="The+Actions+in+Apache+Cocoon"></a>
+<h3>The Actions in Apache Cocoon</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>Forthcoming...</p>
+<ul>
+
+<li>
+<a href="database-actions.html">Database Actions</a>
+</li>
+
+<li>
+<a href="sendmail-action.html">Sendmail Action</a>
+</li>
+
+<li>
+<a href="session-action.html">Session Action</a>
+</li>
+
+</ul>
+</div>
+
+</div>
+</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end Content==================-->
+</table>
+</td>
+</tr>
+</table>
+<!--================= end Menu, NavBar, Content ==================-->
+<!--================= start Footer ==================-->
+<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
+</tr>
+<tr>
+<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright ©
+ 1999-2003 The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
+ document.write(" - "+"Last Published: " + document.lastModified);
+ // --></script></font></td>
+</tr>
+<tr>
+<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
+</tr>
+</table>
+<!--================= end Footer ==================-->
+</body>
+</html>
1.2 +72 -141 cocoon-site/site/2.1/userdocs/actions/actions.pdf
<<Binary file>>
1.5 +709 -709 cocoon-site/site/2.1/userdocs/actions/database-actions.html
Index: database-actions.html
===================================================================
RCS file: /home/cvs/cocoon-site/site/2.1/userdocs/actions/database-actions.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- database-actions.html 21 May 2003 15:23:33 -0000 1.4
+++ database-actions.html 19 Jul 2003 06:50:19 -0000 1.5
@@ -1,709 +1,709 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Database Actions</title>
-<link type="text/css" href="../../skin/page.css" rel="stylesheet">
-</head>
-<body text="#000000" bgcolor="#FFFFFF">
-<!--================= start Navigation Path ==================-->
-<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
-</tr>
-<tr>
-<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-<!--================= end Navigation Path ==================-->
-<!--================= start Banner ==================-->
-<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<!--================= start Group Logo ==================-->
-<td bgcolor="#294563"><a href="http://xml.apache.org"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/group-logo.gif"></a></td>
-<!--================= end Group Logo ==================-->
-<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
-<!--================= end Project Logo ==================-->
-<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
-<form target="_blank" action="http://www.google.com/search" method="get">
-<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
-<tr>
-<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
-<br>
-<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
- the Apache Cocoon site
-
-
- </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
-</tr>
-</table>
-</form>
-</td>
-<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td valign="bottom" bgcolor="#294563" colspan="2">
-<!--================= start Tabs ==================-->
-<div class="tab">
-<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="8"><img alt="" height="8" width="8" src="../../skin/images/spacer.gif"></td><td valign="bottom">
-<table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
-</tr>
-</table>
-</td>
-</tr>
-</table>
-</div>
-<!--================= end Tabs ==================-->
-</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-<!--================= end Banner ==================-->
-<!--================= start Menu, NavBar, Content ==================-->
-<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td valign="top">
-<table summary="menu" border="0" cellspacing="0" cellpadding="0">
-<tr>
-<!--================= start left top NavBar ==================-->
-<td rowspan="3" valign="top">
-<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
-</tr>
-<tr>
-<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-</td>
-<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
-<!--================= start Menu items ==================-->
-<div class="menu">
-<ul>
-<li>
-<font color="#CFDCED">Navigation</font>
-<ul>
-
-<li>
-<a href="../../index.html">Main</a>
-</li>
-
-<li>
-<a href="../index.html">User Documentation</a>
-</li>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Actions</font>
-<ul>
-
-<li>
-<a href="actions.html">Overview</a>
-</li>
-
-<li>
-<span class="sel"><font color="#ffcc00">Database</font></span>
-</li>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Default</font>
-<ul>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Core</font>
-<ul>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Optional</font>
-<ul>
-
-<li>
-<a href="session-action.html">Session Action</a>
-</li>
-
-<li>
-<a href="sendmail-action.html">Sendmail Action</a>
-</li>
-
-</ul>
-</li>
-</ul>
-</div>
-<!--================= end Menu items ==================-->
-</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
-</tr>
-<tr>
-<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-</td><td valign="top" width="100%">
-<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
-<!--================= start middle NavBar ==================-->
-<tr>
-<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
-
- </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
-
- </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<!--================= end middle NavBar ==================-->
-<!--================= start Content==================-->
-<tr>
-<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="100%">
-<div class="content">
-<table class="title" summary="">
-<tr>
-<td valign="middle">
-<h1>Database Actions</h1>
-</td><script Language="Javascript">
-
-function printit(){
-if (window.print) {
- window.print() ;
-} else {
- var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
-document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
- WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
-}
-}
-</script><script Language="Javascript">
-var NS = (navigator.appName == "Netscape");
-var VERSION = parseInt(navigator.appVersion);
-if (VERSION > 3) {
- document.write('<td nowrap="nowrap" width="40" align="center">');
- document.write(' <a class="dida" href="javascript:printit()">');
- document.write(' <img alt="Print this Page" src="../../skin/images/printer.gif" border="0"><br>');
- document.write(' print</a>');
- document.write('</td>');
-}
-</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="database-actions.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
- PDF</a></td>
-</tr>
-</table>
-<p>
-<font size="-2">by Christian Haul</font>
-</p>
-<ul class="minitoc">
-<li>
-<a href="#Introduction">Introduction</a>
-</li>
-<li>
-<a href="#Original+Database+Actions">Original Database Actions</a>
-<ul class="minitoc">
-<li>
-<a href="#Describing+the+Structure+of+your+DB+-+descriptor.xml">Describing the Structure of your DB - descriptor.xml</a>
-</li>
-</ul>
-</li>
-<li>
-<a href="#Modular+Database+Actions">Modular Database Actions</a>
-<ul class="minitoc">
-<li>
-<a href="#Describing+the+Structure+of+your+DB+-+descriptor.xml-N100B9">Describing the Structure of your DB - descriptor.xml</a>
-</li>
-</ul>
-</li>
-</ul>
-
-<a name="N10013"></a><a name="Introduction"></a>
-<h3>Introduction</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- Two different sets of actions exist, that deal with (object) relational
- database access through JDBC. The original database actions provide a
- relatively simple interface to store, modify, delete and retrieve data.
- They are oriented towards usage of request parameters for input and
- request attributes together with sitemap variables for output and do
- not support auto increment column types. In addition, the description of
- the database structure is split over several files since these actions
- attempt to use all tables in a provided description.
- </p>
-<p>
- The modular database actions provide similar functionality. In contrast
- to the original actions they allow to store the database meta data in a
- single file and to switch input and output flexible through the use of
- modules. Even for auto increment columns specific modules exist that
- cover a wide range of database management systems.
- </p>
-<p>
- For an overview of column types supported by the modular database
- actions, see javadocs for JDBCTypeConversions. The types supported by
- the original actions are documented in AbstractDatabaseAction.
- </p>
-</div>
-
-
-<a name="N10022"></a><a name="Original+Database+Actions"></a>
-<h3>Original Database Actions</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- The original database actions have evolved quite a bit and at different
- speeds. The add action is certainly the most complete one, providing
- support for multiple tables and rows. However, the interface has become
- a bit inconsistent.
- </p>
-<p>
- If an error occurs, the original database actions will throw an
- exception.
- </p>
-<a name="N1002D"></a><a name="Describing+the+Structure+of+your+DB+-+descriptor.xml"></a>
-<h4>Describing the Structure of your DB - descriptor.xml</h4>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- The key to database actions is a file that describes database meta
- data in XML. The original actions will ignore all but the first table
- and act only on one row. Only the add action will try to access all
- tables that are contained in this description. As a consequence, each
- HTML form needs to have a corresponding descriptor file if different
- tables are affected.
- </p>
-<p>
- The file name has no meaning and does not need to be
- <span class="codefrag">descriptor.xml</span> - it can even be a Cocoon pipeline. The
- name of the root element in a descriptor file is ignored. Only
- <span class="codefrag">table</span> elements nested on first level inside the root
- element are parsed by the actions. All unknown elements or attributes
- are ignored.
- </p>
-<p>
- For each table a <span class="codefrag">table</span> element needs to be present.
- </p>
-<pre class="code">
-
-<?xml version="1.0"?>
-
-<employee>
- <connection>personnel</connection>
- <table name="employee">
- <keys>
- <key param="employee" dbcol="id" type="int" mode="manual"/>
- </keys>
- <values>
- <value param="name" dbcol="name" type="string"/>
- <value param="department" dbcol="department_id" type="int"/>
- </values>
- </table>
-</employee>
-
- </pre>
-<p>
- Describes a single table named "employee". In addition a database
- connection is specified. See <a href="../../developing/datasources.html">here</a> for more
- information on database connections.
- </p>
-<a name="N10050"></a><a name="Key+Columns"></a>
-<h5>Key Columns</h5>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- Tables may or may not have key columns. A key column is a column
- that is part of the primary key. Actually, candidate keys should do
- as well.
- </p>
-<p>
- All key columns are contained in a <span class="codefrag">keys</span> child element
- of the <span class="codefrag">table</span> element. Each column has a
- <span class="codefrag">key</span> element to define its properties. The
- <span class="codefrag">dbcol</span> attribute holds the column name,
- <span class="codefrag">type</span> is the JDBC type name for this column (have a
- look at AbstactDatabaseAction source for valid type names),
- <span class="codefrag">param</span> specifies the name of the request parameter to
- use, and <span class="codefrag">mode</span> sets how the value for this column is
- obtained on adding a row.
- </p>
-<p>
- Through the mode attribute the behaviour of the add action can be
- changed.
- </p>
-<p>
- Default mode is "automatic" and to let the database create the key
- value by setting this value to <span class="codefrag">null</span>. The created value
- can not be read back from the database and will not be available as
- request attribute or sitemap variable.
- </p>
-<p>
- A mode of "manual" will query the database for the maximum current
- value, add 1 to it and use that for a value.
- </p>
-<p>
- A mode of "form" will use the corresponding request parameter.
- </p>
-<p>
- A mode of "request-attribute" will use the corresponding request
- attribute. The name specified in the <span class="codefrag">param</span> attribute
- will be automatically prefixed with the class name.
- </p>
-<p>
- Key values will be propagated to sitemap variables and - prefixed
- with the class name - request attributes.
- </p>
-</div>
-<a name="N10089"></a><a name="Other+Columns"></a>
-<h5>Other Columns</h5>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- All other columns are contained in a <span class="codefrag">values</span> child
- element of the <span class="codefrag">table</span> element. Each column has a
- <span class="codefrag">value</span> element to define its properties. Properties are
- similar to those for key columns. A <span class="codefrag">mode</span> attribute
- does not exist for value columns. Instead, request parameters and
- request attributes are tried in this order for the specified
- parameter.
- </p>
-<p>
- Request attribute names are <em>not</em> prefixed with the class
- name. Thus, to insert the value of a key column of the previous row
- or previous table into a value column, it needs to be named
- <span class="codefrag">org.apache.cocoon.acting.AbstractDatabaseAction:key:table:dbcol</span>.
- </p>
-<p>
- Value columns are propagated to request attributes with class name
- prefix. They are not available for the sitemap.
- </p>
-</div>
-</div>
-</div>
-
-<a name="N100AC"></a><a name="Modular+Database+Actions"></a>
-<h3>Modular Database Actions</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- The modular database actions were mainly created to make auto increment
- columns available, handle input and output flexibly, and have a
- consistent interface. A successful action will return the number of
- rows affected in a sitemap parameter named <span class="codefrag">row-count</span>. The
- added features required to change the descriptor file format in
- incompatible ways.
- </p>
-<p>
- It can be configured if an exception will be thrown when an error
- occurs.
- </p>
-<a name="N100BA"></a><a name="Describing+the+Structure+of+your+DB+-+descriptor.xml-N100B9"></a>
-<h4>Describing the Structure of your DB - descriptor.xml</h4>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- Like the original actions, the modular actions need meta data in an
- XML file. However, that file may contain any number of tables, not
- just the ones needed for a single request. The tables actually used
- are referenced through a <span class="codefrag">table-set</span>. Unknown elements and
- attributes are ignored. This way a descriptor file can be shared with
- other actions like the form validator.
- </p>
-<p>
- For the flexible input and output handling, the modular database
- actions rely on <a href="../concepts/modules.html">modules</a>.
- Have a look at those before proceeding.
- </p>
-<p>
- The following is a snippet from a descriptor file.
- </p>
-<pre class="code">
-
-<root>
- <connection>personnel</connection>
- <table name="user" alias="user">
- <keys>
- <key name="uid" type="int" autoincrement="true">
- <mode name="auto" type="autoincr"/>
- </key>
- </keys>
- <values>
- <value name="name" type="string"></value>
- <value name="firstname" type="string"></value>
- <value name="uname" type="string"></value>
- </values>
- </table>
-
- </pre>
-<p>
- The <span class="codefrag">table</span> element has an additional attribute
- <span class="codefrag">alias</span> which is an alternative name to reference
- the table from a table set. The descriptor file is searched
- top down for tables whose <span class="codefrag">name</span> or
- <span class="codefrag">alias</span> match. The <span class="codefrag">alias</span>n attribute
- is useful if a complex join expression is used as table
- name. In such a case modifications like update, insert,
- delete will likely fail.
- </p>
-<p>
- Another application of aliases if different numbers of columns should
- be affected by an operation. or if a table contains several candidate
- keys that are used alternatively. This way, different views to a
- table can be created.
- </p>
-<a name="N100E9"></a><a name="Key+Columns-N100E7"></a>
-<h5>Key Columns</h5>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- The descriptor file resembles the one for the original actions. One
- major difference is the absence of <span class="codefrag">dbcol</span> and
- <span class="codefrag">param</span> attributes. Instead there is a <span class="codefrag">name</span>
- attribute which corresponds to the <span class="codefrag">dbcol</span> attribute and
- specifies the database column name.
- </p>
-<p>
- If a column is an auto increment column, the similar named attribute
- indicates this. Auto increment columns will be handled differently
- on insert operations.
- </p>
-<p>
- Instead of specifying a parameter name, the actions support to use
- different input modules for each operation through the nested
- <span class="codefrag">mode</span> elements. This is described in more detail below.
- </p>
-<p>
- Note here though, that not every column needs a <span class="codefrag">mode</span>
- element: The actions default to the module defined as
- <span class="codefrag">request</span> which is in a default installation to obtain
- the values from request parameters. The name of the parameter
- defaults to table name dot column name.
- </p>
-</div>
-<a name="N10110"></a><a name="Other+Columns-N1010E"></a>
-<h5>Other Columns</h5>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- Apart from the fact that the auto increment columns are only
- supported for key columns, everything said above applies to value
- columns as well.
- </p>
-</div>
-<a name="N10119"></a><a name="Operation+Mode+Types"></a>
-<h5>Operation Mode Types</h5>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- Basically, two different mode types exist:
- <span class="codefrag">autoincrement</span> which is used whenever data shall be
- inserted into a table and this particular key column has the
- auto increment attribute set and <span class="codefrag">others</span> for all other
- requirements.
- </p>
-<p>
- In addition, a table-set can specify different mode types to use
- instead of the predefined type names. Through this, and the fact
- that every mode can specify a different input module, it is easy to
- use different input modules for different tasks and forms.
- </p>
-<p>
- One special mode type name exists that matches all requested ones:
- <span class="codefrag">all</span> This makes it easier to configure only some
- columns differently for each table-set.
- </p>
-</div>
-<a name="N10131"></a><a name="How+to+obtain+Values"></a>
-<h5>How to obtain Values</h5>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- As said above, these actions default to reading from request
- parameters with a default parameter name. By specifying
- <span class="codefrag">mode</span> elements, this can be overridden. Any component
- that implements the <span class="codefrag">InputModule</span> interface can be used
- to obtain values. How to make such modules known to Apache Cocoon
- is described <a href="../concepts/modules.html">elsewhere</a>.
- </p>
-<p>
- Beside using different input modules, their parameters can be set
- in place, for example to override parameter names, configure a
- random generator or a message digest algorithm.
- </p>
-<pre class="code">
-
- <table name="user_groups">
- <keys>
- <key name="uid" type="int">
- <mode name="request" type="request">
- <parameter>user_groups.uid</parameter>
- </mode>
- <mode name="attribute" type="attrib">
- <parameter>org.apache.cocoon.components.modules.output.OutputModule:user.uid[0]</parameter>
- </mode>
- </key>
- <key name="gid" type="int" set="master">
- <mode name="request" type="all">
- <parameter>user_groups.gid</parameter>
- </mode>
- </key>
- </keys>
- </table>
-
- </pre>
-<p>
- The above example shows just that: the <span class="codefrag">parameter</span>
- element is not read by the database action itself but the
- complete <span class="codefrag">mode</span> configuration object is passed to the
- input module. Both the request attribute and the request parameter
- input modules understand this parameter attribute which takes
- precedence over the default one.
- </p>
-<p>
- Another feature when obtaining values is tied to the
- <span class="codefrag">type</span> attribute: Different modes can be used in
- different situations. The basic setup uses two different mode
- types: <span class="codefrag">autoincrement</span> when inserting in key columns
- that have an indicator that they are indeed auto increment columns
- and <span class="codefrag">others</span> for insert operations on all other columns
- and all other operations on all columns.
- </p>
-<p>
- Table-sets can override the default names for these two mode type
- name categories with arbitrary names except the special name
- <span class="codefrag">all</span>. A mode that carries the type name "all" is used
- with all requested type names. Lookup obeys first match principle
- so that all modes are tested from top to bottom and the first that
- matches is used.
- </p>
-</div>
-<a name="N10167"></a><a name="How+to+store+Values+e.g.+in+your+Session"></a>
-<h5>How to store Values e.g. in your Session</h5>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- All modular database action can be configured to use any component
- that implements the <span class="codefrag">OutputModule</span> interface to store
- values. The output module is chosen on declaring the action in the
- sitemap or dynamically with a sitemap parameter. If no output
- module is specified, the default it to use the request attribute
- module.
- </p>
-<p>
- The interface does not allow to pass configuration information to
- the output module. This has to be done when the module is declared
- e.g. in cocoon.xconf.
- </p>
-</div>
-<a name="N10176"></a><a name="Inserting+Multiple+Rows+-+Sets"></a>
-<h5>Inserting Multiple Rows - Sets</h5>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- Once common task is to work on more than one row. If the rows are
- in different tables, this is catered for by table-sets. Operating
- on multiple rows of one table requires to mark columns that should
- vary and among those one, that determines the number of rows to
- work on.
- </p>
-<p>
- This is done with sets. All columns that cary a <span class="codefrag">set</span>
- attribute can vary, those, that don't, are kept fixed during the
- operation. The column that is used to determine the number of rows
- is required to have a value of <span class="codefrag">master</span> while all others
- need to have a value of <span class="codefrag">slave</span> for the set
- attribute. There may be only one master in a set.
- </p>
-<p>
- Sets can be tagged either on column or on mode level but not both
- for a single column.
- </p>
-</div>
-<a name="N1018E"></a><a name="Select+Your+Tables+-+Table-Sets"></a>
-<h5>Select Your Tables - Table-Sets</h5>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- Tables that should be used during an operation can be grouped
- together with a table-set. A table-set references tables by their
- name or their alias.
- </p>
-<p>
- In addition, a table-set can override the mode type names for the
- two categories "autoincrement" and "others".
- </p>
-<p>
- Operations spanning multiple tables in a table-set are done in a
- single transaction. Thus, if one fails, the other is rolled back.
- </p>
-<pre class="code">
-
-
- <table name="groups">
- <keys>
- <key name="gid" type="int" autoincrement="true">
- <mode name="auto" type="autoincr"/>
- </key>
- </keys>
- <values>
- <value name="gname" type="string"/>
- </values>
- </table>
-
- <table-set name="user">
- <table name="user"/>
- </table-set>
-
- <table-set name="groups">
- <table name="groups"/>
- </table-set>
-
- <table-set name="user+groups">
- <table name="user"/>
- <table name="user_groups" others-mode="attrib"/>
- </table-set>
-
- <table-set name="user_groups">
- <table name="user_groups" others-mode="request"/>
- </table-set>
-
-</root>
-
- </pre>
-</div>
-</div>
-</div>
-
-</div>
-</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<!--================= end Content==================-->
-</table>
-</td>
-</tr>
-</table>
-<!--================= end Menu, NavBar, Content ==================-->
-<!--================= start Footer ==================-->
-<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
-<tr>
-<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
-</tr>
-<tr>
-<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright ©
- 1999-2003 The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
- document.write(" - "+"Last Published: " + document.lastModified);
- // --></script></font></td>
-</tr>
-<tr>
-<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
-</tr>
-</table>
-<!--================= end Footer ==================-->
-</body>
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Database Actions</title>
+<link type="text/css" href="../../skin/page.css" rel="stylesheet">
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<!--================= start Navigation Path ==================-->
+<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Navigation Path ==================-->
+<!--================= start Banner ==================-->
+<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<!--================= start Group Logo ==================-->
+<td bgcolor="#294563"><a href=""></a></td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
+<!--================= end Project Logo ==================-->
+<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+<tr>
+<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><input name="Search" value="Search" type="submit">
+<br>
+<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
+ the Apache Cocoon site
+
+
+ </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" bgcolor="#294563" colspan="2">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="6"><img alt="" height="8" width="6" src="../../skin/images/spacer.gif"></td><td valign="bottom">
+<table summary="selected tab" style="height: 1.8em" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</div>
+<!--================= end Tabs ==================-->
+</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Banner ==================-->
+<!--================= start Menu, NavBar, Content ==================-->
+<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top">
+<table summary="menu" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<!--================= start left top NavBar ==================-->
+<td rowspan="3" valign="top">
+<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
+</tr>
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td>
+<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
+<!--================= start Menu items ==================-->
+<div class="menu">
+<ul>
+<li>
+<font color="#CFDCED">Navigation</font>
+<ul>
+
+<li>
+<a href="../../index.html">Main</a>
+</li>
+
+<li>
+<a href="../index.html">User Documentation</a>
+</li>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Actions</font>
+<ul>
+
+<li>
+<a href="actions.html">Overview</a>
+</li>
+
+<li>
+<span class="sel"><font color="#ffcc00">Database</font></span>
+</li>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Default</font>
+<ul>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Core</font>
+<ul>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Optional</font>
+<ul>
+
+<li>
+<a href="sendmail-action.html">Sendmail Action</a>
+</li>
+
+<li>
+<a href="session-action.html">Session Action</a>
+</li>
+
+</ul>
+</li>
+</ul>
+</div>
+<!--================= end Menu items ==================-->
+</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
+</tr>
+<tr>
+<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td><td valign="top" width="100%">
+<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
+<!--================= start middle NavBar ==================-->
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+
+
+ </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+
+
+ </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end middle NavBar ==================-->
+<!--================= start Content==================-->
+<tr>
+<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="100%">
+<div class="content">
+<table class="title" summary="">
+<tr>
+<td valign="middle">
+<h1>Database Actions</h1>
+</td><script Language="Javascript">
+
+function printit(){
+if (window.print) {
+ window.print() ;
+} else {
+ var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+ WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
+}
+}
+</script><script Language="Javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+ document.write('<td nowrap="nowrap" width="40" align="center">');
+ document.write(' <a class="dida" href="javascript:printit()">');
+ document.write(' <img alt="Print this Page" src="../../skin/images/printer.gif" class="skin"><br>');
+ document.write(' print</a>');
+ document.write('</td>');
+}
+</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="database-actions.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+ PDF</a></td>
+</tr>
+</table>
+<p>
+<font size="-2">by Christian Haul</font>
+</p>
+<ul class="minitoc">
+<li>
+<a href="#Introduction">Introduction</a>
+</li>
+<li>
+<a href="#Original+Database+Actions">Original Database Actions</a>
+<ul class="minitoc">
+<li>
+<a href="#Describing+the+Structure+of+your+DB+-+descriptor.xml">Describing the Structure of your DB - descriptor.xml</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Modular+Database+Actions">Modular Database Actions</a>
+<ul class="minitoc">
+<li>
+<a href="#Describing+the+Structure+of+your+DB+-+descriptor.xml-N100B9">Describing the Structure of your DB - descriptor.xml</a>
+</li>
+</ul>
+</li>
+</ul>
+
+<a name="N10013"></a><a name="Introduction"></a>
+<h3>Introduction</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ Two different sets of actions exist, that deal with (object) relational
+ database access through JDBC. The original database actions provide a
+ relatively simple interface to store, modify, delete and retrieve data.
+ They are oriented towards usage of request parameters for input and
+ request attributes together with sitemap variables for output and do
+ not support auto increment column types. In addition, the description of
+ the database structure is split over several files since these actions
+ attempt to use all tables in a provided description.
+ </p>
+<p>
+ The modular database actions provide similar functionality. In contrast
+ to the original actions they allow to store the database meta data in a
+ single file and to switch input and output flexible through the use of
+ modules. Even for auto increment columns specific modules exist that
+ cover a wide range of database management systems.
+ </p>
+<p>
+ For an overview of column types supported by the modular database
+ actions, see javadocs for JDBCTypeConversions. The types supported by
+ the original actions are documented in AbstractDatabaseAction.
+ </p>
+</div>
+
+
+<a name="N10022"></a><a name="Original+Database+Actions"></a>
+<h3>Original Database Actions</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ The original database actions have evolved quite a bit and at different
+ speeds. The add action is certainly the most complete one, providing
+ support for multiple tables and rows. However, the interface has become
+ a bit inconsistent.
+ </p>
+<p>
+ If an error occurs, the original database actions will throw an
+ exception.
+ </p>
+<a name="N1002D"></a><a name="Describing+the+Structure+of+your+DB+-+descriptor.xml"></a>
+<h4>Describing the Structure of your DB - descriptor.xml</h4>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ The key to database actions is a file that describes database meta
+ data in XML. The original actions will ignore all but the first table
+ and act only on one row. Only the add action will try to access all
+ tables that are contained in this description. As a consequence, each
+ HTML form needs to have a corresponding descriptor file if different
+ tables are affected.
+ </p>
+<p>
+ The file name has no meaning and does not need to be
+ <span class="codefrag">descriptor.xml</span> - it can even be a Cocoon pipeline. The
+ name of the root element in a descriptor file is ignored. Only
+ <span class="codefrag">table</span> elements nested on first level inside the root
+ element are parsed by the actions. All unknown elements or attributes
+ are ignored.
+ </p>
+<p>
+ For each table a <span class="codefrag">table</span> element needs to be present.
+ </p>
+<pre class="code">
+
+<?xml version="1.0"?>
+
+<employee>
+ <connection>personnel</connection>
+ <table name="employee">
+ <keys>
+ <key param="employee" dbcol="id" type="int" mode="manual"/>
+ </keys>
+ <values>
+ <value param="name" dbcol="name" type="string"/>
+ <value param="department" dbcol="department_id" type="int"/>
+ </values>
+ </table>
+</employee>
+
+ </pre>
+<p>
+ Describes a single table named "employee". In addition a database
+ connection is specified. See <a href="../../developing/datasources.html">here</a> for more
+ information on database connections.
+ </p>
+<a name="N10050"></a><a name="Key+Columns"></a>
+<h5>Key Columns</h5>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ Tables may or may not have key columns. A key column is a column
+ that is part of the primary key. Actually, candidate keys should do
+ as well.
+ </p>
+<p>
+ All key columns are contained in a <span class="codefrag">keys</span> child element
+ of the <span class="codefrag">table</span> element. Each column has a
+ <span class="codefrag">key</span> element to define its properties. The
+ <span class="codefrag">dbcol</span> attribute holds the column name,
+ <span class="codefrag">type</span> is the JDBC type name for this column (have a
+ look at AbstactDatabaseAction source for valid type names),
+ <span class="codefrag">param</span> specifies the name of the request parameter to
+ use, and <span class="codefrag">mode</span> sets how the value for this column is
+ obtained on adding a row.
+ </p>
+<p>
+ Through the mode attribute the behaviour of the add action can be
+ changed.
+ </p>
+<p>
+ Default mode is "automatic" and to let the database create the key
+ value by setting this value to <span class="codefrag">null</span>. The created value
+ can not be read back from the database and will not be available as
+ request attribute or sitemap variable.
+ </p>
+<p>
+ A mode of "manual" will query the database for the maximum current
+ value, add 1 to it and use that for a value.
+ </p>
+<p>
+ A mode of "form" will use the corresponding request parameter.
+ </p>
+<p>
+ A mode of "request-attribute" will use the corresponding request
+ attribute. The name specified in the <span class="codefrag">param</span> attribute
+ will be automatically prefixed with the class name.
+ </p>
+<p>
+ Key values will be propagated to sitemap variables and - prefixed
+ with the class name - request attributes.
+ </p>
+</div>
+<a name="N10089"></a><a name="Other+Columns"></a>
+<h5>Other Columns</h5>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ All other columns are contained in a <span class="codefrag">values</span> child
+ element of the <span class="codefrag">table</span> element. Each column has a
+ <span class="codefrag">value</span> element to define its properties. Properties are
+ similar to those for key columns. A <span class="codefrag">mode</span> attribute
+ does not exist for value columns. Instead, request parameters and
+ request attributes are tried in this order for the specified
+ parameter.
+ </p>
+<p>
+ Request attribute names are <em>not</em> prefixed with the class
+ name. Thus, to insert the value of a key column of the previous row
+ or previous table into a value column, it needs to be named
+ <span class="codefrag">org.apache.cocoon.acting.AbstractDatabaseAction:key:table:dbcol</span>.
+ </p>
+<p>
+ Value columns are propagated to request attributes with class name
+ prefix. They are not available for the sitemap.
+ </p>
+</div>
+</div>
+</div>
+
+<a name="N100AC"></a><a name="Modular+Database+Actions"></a>
+<h3>Modular Database Actions</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ The modular database actions were mainly created to make auto increment
+ columns available, handle input and output flexibly, and have a
+ consistent interface. A successful action will return the number of
+ rows affected in a sitemap parameter named <span class="codefrag">row-count</span>. The
+ added features required to change the descriptor file format in
+ incompatible ways.
+ </p>
+<p>
+ It can be configured if an exception will be thrown when an error
+ occurs.
+ </p>
+<a name="N100BA"></a><a name="Describing+the+Structure+of+your+DB+-+descriptor.xml-N100B9"></a>
+<h4>Describing the Structure of your DB - descriptor.xml</h4>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ Like the original actions, the modular actions need meta data in an
+ XML file. However, that file may contain any number of tables, not
+ just the ones needed for a single request. The tables actually used
+ are referenced through a <span class="codefrag">table-set</span>. Unknown elements and
+ attributes are ignored. This way a descriptor file can be shared with
+ other actions like the form validator.
+ </p>
+<p>
+ For the flexible input and output handling, the modular database
+ actions rely on <a href="../concepts/modules.html">modules</a>.
+ Have a look at those before proceeding.
+ </p>
+<p>
+ The following is a snippet from a descriptor file.
+ </p>
+<pre class="code">
+
+<root>
+ <connection>personnel</connection>
+ <table name="user" alias="user">
+ <keys>
+ <key name="uid" type="int" autoincrement="true">
+ <mode name="auto" type="autoincr"/>
+ </key>
+ </keys>
+ <values>
+ <value name="name" type="string"></value>
+ <value name="firstname" type="string"></value>
+ <value name="uname" type="string"></value>
+ </values>
+ </table>
+
+ </pre>
+<p>
+ The <span class="codefrag">table</span> element has an additional attribute
+ <span class="codefrag">alias</span> which is an alternative name to reference
+ the table from a table set. The descriptor file is searched
+ top down for tables whose <span class="codefrag">name</span> or
+ <span class="codefrag">alias</span> match. The <span class="codefrag">alias</span>n attribute
+ is useful if a complex join expression is used as table
+ name. In such a case modifications like update, insert,
+ delete will likely fail.
+ </p>
+<p>
+ Another application of aliases if different numbers of columns should
+ be affected by an operation. or if a table contains several candidate
+ keys that are used alternatively. This way, different views to a
+ table can be created.
+ </p>
+<a name="N100E9"></a><a name="Key+Columns-N100E7"></a>
+<h5>Key Columns</h5>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ The descriptor file resembles the one for the original actions. One
+ major difference is the absence of <span class="codefrag">dbcol</span> and
+ <span class="codefrag">param</span> attributes. Instead there is a <span class="codefrag">name</span>
+ attribute which corresponds to the <span class="codefrag">dbcol</span> attribute and
+ specifies the database column name.
+ </p>
+<p>
+ If a column is an auto increment column, the similar named attribute
+ indicates this. Auto increment columns will be handled differently
+ on insert operations.
+ </p>
+<p>
+ Instead of specifying a parameter name, the actions support to use
+ different input modules for each operation through the nested
+ <span class="codefrag">mode</span> elements. This is described in more detail below.
+ </p>
+<p>
+ Note here though, that not every column needs a <span class="codefrag">mode</span>
+ element: The actions default to the module defined as
+ <span class="codefrag">request</span> which is in a default installation to obtain
+ the values from request parameters. The name of the parameter
+ defaults to table name dot column name.
+ </p>
+</div>
+<a name="N10110"></a><a name="Other+Columns-N1010E"></a>
+<h5>Other Columns</h5>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ Apart from the fact that the auto increment columns are only
+ supported for key columns, everything said above applies to value
+ columns as well.
+ </p>
+</div>
+<a name="N10119"></a><a name="Operation+Mode+Types"></a>
+<h5>Operation Mode Types</h5>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ Basically, two different mode types exist:
+ <span class="codefrag">autoincrement</span> which is used whenever data shall be
+ inserted into a table and this particular key column has the
+ auto increment attribute set and <span class="codefrag">others</span> for all other
+ requirements.
+ </p>
+<p>
+ In addition, a table-set can specify different mode types to use
+ instead of the predefined type names. Through this, and the fact
+ that every mode can specify a different input module, it is easy to
+ use different input modules for different tasks and forms.
+ </p>
+<p>
+ One special mode type name exists that matches all requested ones:
+ <span class="codefrag">all</span> This makes it easier to configure only some
+ columns differently for each table-set.
+ </p>
+</div>
+<a name="N10131"></a><a name="How+to+obtain+Values"></a>
+<h5>How to obtain Values</h5>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ As said above, these actions default to reading from request
+ parameters with a default parameter name. By specifying
+ <span class="codefrag">mode</span> elements, this can be overridden. Any component
+ that implements the <span class="codefrag">InputModule</span> interface can be used
+ to obtain values. How to make such modules known to Apache Cocoon
+ is described <a href="../concepts/modules.html">elsewhere</a>.
+ </p>
+<p>
+ Beside using different input modules, their parameters can be set
+ in place, for example to override parameter names, configure a
+ random generator or a message digest algorithm.
+ </p>
+<pre class="code">
+
+ <table name="user_groups">
+ <keys>
+ <key name="uid" type="int">
+ <mode name="request" type="request">
+ <parameter>user_groups.uid</parameter>
+ </mode>
+ <mode name="attribute" type="attrib">
+ <parameter>org.apache.cocoon.components.modules.output.OutputModule:user.uid[0]</parameter>
+ </mode>
+ </key>
+ <key name="gid" type="int" set="master">
+ <mode name="request" type="all">
+ <parameter>user_groups.gid</parameter>
+ </mode>
+ </key>
+ </keys>
+ </table>
+
+ </pre>
+<p>
+ The above example shows just that: the <span class="codefrag">parameter</span>
+ element is not read by the database action itself but the
+ complete <span class="codefrag">mode</span> configuration object is passed to the
+ input module. Both the request attribute and the request parameter
+ input modules understand this parameter attribute which takes
+ precedence over the default one.
+ </p>
+<p>
+ Another feature when obtaining values is tied to the
+ <span class="codefrag">type</span> attribute: Different modes can be used in
+ different situations. The basic setup uses two different mode
+ types: <span class="codefrag">autoincrement</span> when inserting in key columns
+ that have an indicator that they are indeed auto increment columns
+ and <span class="codefrag">others</span> for insert operations on all other columns
+ and all other operations on all columns.
+ </p>
+<p>
+ Table-sets can override the default names for these two mode type
+ name categories with arbitrary names except the special name
+ <span class="codefrag">all</span>. A mode that carries the type name "all" is used
+ with all requested type names. Lookup obeys first match principle
+ so that all modes are tested from top to bottom and the first that
+ matches is used.
+ </p>
+</div>
+<a name="N10167"></a><a name="How+to+store+Values+e.g.+in+your+Session"></a>
+<h5>How to store Values e.g. in your Session</h5>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ All modular database action can be configured to use any component
+ that implements the <span class="codefrag">OutputModule</span> interface to store
+ values. The output module is chosen on declaring the action in the
+ sitemap or dynamically with a sitemap parameter. If no output
+ module is specified, the default it to use the request attribute
+ module.
+ </p>
+<p>
+ The interface does not allow to pass configuration information to
+ the output module. This has to be done when the module is declared
+ e.g. in cocoon.xconf.
+ </p>
+</div>
+<a name="N10176"></a><a name="Inserting+Multiple+Rows+-+Sets"></a>
+<h5>Inserting Multiple Rows - Sets</h5>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ Once common task is to work on more than one row. If the rows are
+ in different tables, this is catered for by table-sets. Operating
+ on multiple rows of one table requires to mark columns that should
+ vary and among those one, that determines the number of rows to
+ work on.
+ </p>
+<p>
+ This is done with sets. All columns that cary a <span class="codefrag">set</span>
+ attribute can vary, those, that don't, are kept fixed during the
+ operation. The column that is used to determine the number of rows
+ is required to have a value of <span class="codefrag">master</span> while all others
+ need to have a value of <span class="codefrag">slave</span> for the set
+ attribute. There may be only one master in a set.
+ </p>
+<p>
+ Sets can be tagged either on column or on mode level but not both
+ for a single column.
+ </p>
+</div>
+<a name="N1018E"></a><a name="Select+Your+Tables+-+Table-Sets"></a>
+<h5>Select Your Tables - Table-Sets</h5>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ Tables that should be used during an operation can be grouped
+ together with a table-set. A table-set references tables by their
+ name or their alias.
+ </p>
+<p>
+ In addition, a table-set can override the mode type names for the
+ two categories "autoincrement" and "others".
+ </p>
+<p>
+ Operations spanning multiple tables in a table-set are done in a
+ single transaction. Thus, if one fails, the other is rolled back.
+ </p>
+<pre class="code">
+
+
+ <table name="groups">
+ <keys>
+ <key name="gid" type="int" autoincrement="true">
+ <mode name="auto" type="autoincr"/>
+ </key>
+ </keys>
+ <values>
+ <value name="gname" type="string"/>
+ </values>
+ </table>
+
+ <table-set name="user">
+ <table name="user"/>
+ </table-set>
+
+ <table-set name="groups">
+ <table name="groups"/>
+ </table-set>
+
+ <table-set name="user+groups">
+ <table name="user"/>
+ <table name="user_groups" others-mode="attrib"/>
+ </table-set>
+
+ <table-set name="user_groups">
+ <table name="user_groups" others-mode="request"/>
+ </table-set>
+
+</root>
+
+ </pre>
+</div>
+</div>
+</div>
+
+</div>
+</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end Content==================-->
+</table>
+</td>
+</tr>
+</table>
+<!--================= end Menu, NavBar, Content ==================-->
+<!--================= start Footer ==================-->
+<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
+</tr>
+<tr>
+<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright ©
+ 1999-2003 The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
+ document.write(" - "+"Last Published: " + document.lastModified);
+ // --></script></font></td>
+</tr>
+<tr>
+<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
+</tr>
+</table>
+<!--================= end Footer ==================-->
+</body>
+</html>
1.2 +158 -175 cocoon-site/site/2.1/userdocs/actions/database-actions.pdf
<<Binary file>>
1.5 +538 -538 cocoon-site/site/2.1/userdocs/actions/sendmail-action.html
Index: sendmail-action.html
===================================================================
RCS file: /home/cvs/cocoon-site/site/2.1/userdocs/actions/sendmail-action.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- sendmail-action.html 21 May 2003 15:23:33 -0000 1.4
+++ sendmail-action.html 19 Jul 2003 06:50:19 -0000 1.5
@@ -1,448 +1,448 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Sendmail Action</title>
-<link type="text/css" href="../../skin/page.css" rel="stylesheet">
-</head>
-<body text="#000000" bgcolor="#FFFFFF">
-<!--================= start Navigation Path ==================-->
-<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
-</tr>
-<tr>
-<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-<!--================= end Navigation Path ==================-->
-<!--================= start Banner ==================-->
-<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<!--================= start Group Logo ==================-->
-<td bgcolor="#294563"><a href="http://xml.apache.org"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/group-logo.gif"></a></td>
-<!--================= end Group Logo ==================-->
-<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
-<!--================= end Project Logo ==================-->
-<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
-<form target="_blank" action="http://www.google.com/search" method="get">
-<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
-<tr>
-<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
-<br>
-<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
- the Apache Cocoon site
-
-
- </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
-</tr>
-</table>
-</form>
-</td>
-<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td valign="bottom" bgcolor="#294563" colspan="2">
-<!--================= start Tabs ==================-->
-<div class="tab">
-<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="8"><img alt="" height="8" width="8" src="../../skin/images/spacer.gif"></td><td valign="bottom">
-<table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
-</tr>
-</table>
-</td>
-</tr>
-</table>
-</div>
-<!--================= end Tabs ==================-->
-</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-<!--================= end Banner ==================-->
-<!--================= start Menu, NavBar, Content ==================-->
-<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td valign="top">
-<table summary="menu" border="0" cellspacing="0" cellpadding="0">
-<tr>
-<!--================= start left top NavBar ==================-->
-<td rowspan="3" valign="top">
-<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
-</tr>
-<tr>
-<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-</td>
-<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
-<!--================= start Menu items ==================-->
-<div class="menu">
-<ul>
-<li>
-<font color="#CFDCED">Navigation</font>
-<ul>
-
-<li>
-<a href="../../index.html">Main</a>
-</li>
-
-<li>
-<a href="../index.html">User Documentation</a>
-</li>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Actions</font>
-<ul>
-
-<li>
-<a href="actions.html">Overview</a>
-</li>
-
-<li>
-<a href="database-actions.html">Database</a>
-</li>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Default</font>
-<ul>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Core</font>
-<ul>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Optional</font>
-<ul>
-
-<li>
-<a href="session-action.html">Session Action</a>
-</li>
-
-<li>
-<span class="sel"><font color="#ffcc00">Sendmail Action</font></span>
-</li>
-
-</ul>
-</li>
-</ul>
-</div>
-<!--================= end Menu items ==================-->
-</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
-</tr>
-<tr>
-<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-</td><td valign="top" width="100%">
-<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
-<!--================= start middle NavBar ==================-->
-<tr>
-<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
-
- </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
-
- </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<!--================= end middle NavBar ==================-->
-<!--================= start Content==================-->
-<tr>
-<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="100%">
-<div class="content">
-<table class="title" summary="">
-<tr>
-<td valign="middle">
-<h1>Sendmail Action</h1>
-</td><script Language="Javascript">
-
-function printit(){
-if (window.print) {
- window.print() ;
-} else {
- var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
-document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
- WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
-}
-}
-</script><script Language="Javascript">
-var NS = (navigator.appName == "Netscape");
-var VERSION = parseInt(navigator.appVersion);
-if (VERSION > 3) {
- document.write('<td nowrap="nowrap" width="40" align="center">');
- document.write(' <a class="dida" href="javascript:printit()">');
- document.write(' <img alt="Print this Page" src="../../skin/images/printer.gif" border="0"><br>');
- document.write(' print</a>');
- document.write('</td>');
-}
-</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="sendmail-action.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
- PDF</a></td>
-</tr>
-</table>
-<p>
-<font size="-2">by Frank Ridderbusch</font>
-</p>
-<ul class="minitoc">
-<li>
-<a href="#Description">Description</a>
-</li>
-<li>
-<a href="#Usage">Usage</a>
-</li>
-<li>
-<a href="#Example+Code">Example Code</a>
-</li>
-<li>
-<a href="#Input%2FOutput+Parameter+Reference">Input/Output Parameter Reference</a>
-</li>
-<li>
-<a href="#Additional+Hint">Additional Hint</a>
-</li>
-</ul>
-
-<a name="N10013"></a><a name="Description"></a>
-<h3>Description</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>The Sendmail action is an action, which makes the capability
- of sending an email message available to the sitemap. This
- includes attaching binary files, which come either from another
- Cocoon pipeline or from HTML file uploads. The Sendmail action
- make the primary methods of the <a href="http://java.sun.com/products/javamail/">Java Mail
- API</a> available to the sitemap.</p>
-<p>The Sendmail action is an alternative to the <a href="../xsp/sendmail.html">Sendmail logicsheet</a>.</p>
-</div>
-
-
-<a name="N10027"></a><a name="Usage"></a>
-<h3>Usage</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>Before the Sendmail action can be used it must be activated
- either in Cocoons main sitemap or in a subsitemap, which is
- used for your application. Include the below
- <span class="codefrag">map:action</span> fragment inside the
- <span class="codefrag">map:components</span> -> <span class="codefrag">map:actions</span>
- tags.</p>
-<pre class="code">
-
-<map:components>
- <map:actions>
- <map:action name="sendmail" logger="sitemap.action.sendmail"
- src="org.apache.cocoon.acting.Sendmail"/>
- </map:actions>
-....
-</map:components>
-
- </pre>
-</div>
-
-
-<a name="N1003E"></a><a name="Example+Code"></a>
-<h3>Example Code</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>This example uses a simple HTML form, which provides entry
- fields for <span class="codefrag">subject</span>, <span class="codefrag">cc</span>,
- <span class="codefrag">uploaded_file1</span> and the email <span class="codefrag">body</span>.
- </p>
-<pre class="code">
-
-<form action="/cocoon/mail/send-a-mail"
- method="POST"
- enctype="multipart/form-data">
-
-<input type="text" name="subject" size="56" />
-...
-<input type="text" name="cc" size="56" />
-...
-<input type="file" name="uploaded_file1" size="56" />
-...
-<textarea name="body" rows="5" cols="72">
-</textarea>
-...
-</form>
-
- </pre>
-<p>Please keep in mind, that it is important to use
- <span class="codefrag">enctype="multipart/form-data"</span>, if you want to
- upload files, which should be attached to an email message.
- </p>
-<p>The posted HTTP request data is processed by this sitemap
- fragment.</p>
-<pre class="code">
-
-<map:match pattern="mail/*">
- <map:act type="sendmail">
- <map:parameter name="smtphost" value="localhost"/>
- <map:parameter name="from" value="cocoon@localhost"/>
- <map:parameter name="to" value="maillinglist@somewhere.com"/>
- <map:parameter name="subject" value="{request-param:subject}"/>
- <map:parameter name="body" value="{request-param:body}"/>
- <map:parameter name="cc" value="{request-param:cc}"/>
- <map:parameter name="bcc" value="censor@somewhere.com"/>
- <map:parameter name="attachments"
- value="uploaded_file1 context://welcome.xml"/>
- <map:generate src="mail/{status}.xml"/>
- <map:serialize type="xml"/>
- </map:act>
-</map:match>
-
- </pre>
-<p>The input modules are used to supply some of the input
- parameters for the Sendmail action. In this example, apart
- from the <span class="codefrag">uploaded_file1</span> request parameter, a
- second file is attached to the email message, using the Cocoon
- protocol notation (the file <span class="codefrag">welcome.xml</span> from the
- Cocoon context directory). The result of sending the email
- message is passed back into the sitemap through the
- <span class="codefrag">status</span> parameter and is used to provide the user
- with a feedback. (The transformation is left as an exercise to
- the reader).</p>
-<p>Please consider the security implications, if you let a user
- specify an email address in an input form. A malicious user
- might abuse this to send SPAM emails. So, this example is
- probably only useful in an intranet application, where users
- can mostly be considered well behaved.</p>
-</div>
-
-
-<a name="parameters"></a>
- <a name="N10078"></a><a name="Input%2FOutput+Parameter+Reference"></a>
-<h3>Input/Output Parameter Reference</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>The following is the list of parameters, which can be passed
- from the sitemap into the Sendmail action.</p>
-<table class="ForrestTable" cellspacing="1" cellpadding="4">
-
-<tr>
-
-<th colspan="1" rowspan="1">Name:</th>
- <th colspan="1" rowspan="1">Required?</th>
- <th colspan="1" rowspan="1">Description:</th>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">smtphost</td>
- <td colspan="1" rowspan="1">no</td>
- <td colspan="1" rowspan="1">The IP-address or the name of the host, which should
- deliver the email message. Better know as the mail
- transfer agent or short MTA.</td>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">to</td>
- <td colspan="1" rowspan="1">yes</td>
- <td colspan="1" rowspan="1">Sets the destination/to address of the email message.
- This can be a list of comma separated email
- addresses.</td>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">cc</td>
- <td colspan="1" rowspan="1">no</td>
- <td colspan="1" rowspan="1">Sets the recipients of a carbon copy of this email. This
- can be a list of comma separated email addresses.</td>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">bcc</td>
- <td colspan="1" rowspan="1">no</td>
- <td colspan="1" rowspan="1">Sets the recipients of a black carbon copy of the
- email. This can be a list of comma separated email
- addresses.</td>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">from</td>
- <td colspan="1" rowspan="1">yes</td>
- <td colspan="1" rowspan="1">Sets the from address of the message.</td>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">subject</td>
- <td colspan="1" rowspan="1">no</td>
- <td colspan="1" rowspan="1">Sets the subject line of the message.</td>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">body</td>
- <td colspan="1" rowspan="1">no</td>
- <td colspan="1" rowspan="1">Sets the body text of the message.</td>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">charset</td>
- <td colspan="1" rowspan="1">no</td>
- <td colspan="1" rowspan="1">Sets the character set for encoding the message. This
- tag has only an effect, if no attachments are send.</td>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">attachment</td>
- <td colspan="1" rowspan="1">no</td>
- <td colspan="1" rowspan="1">Sets the attachment for this email. This is a blank
- separated list. If an argument contains a ":", it is
- assumed, that a Cocoon internal protocol is specified
- (ex: <span class="codefrag">context://welcome.xml</span>). This means, that
- the attachment comes from a Cocoon pipeline (internally an
- <span class="codefrag">org.apache.excalibur.source.Source</span> object).
- If the argument does not contain a colon, the argument
- names a request parameter, which is a file upload through
- a HTML form (internally an
- <span class="codefrag">org.apache.cocoon.components.request.multipart.FilePart</span>
- object).</td>
-
-</tr>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Sendmail Action</title>
+<link type="text/css" href="../../skin/page.css" rel="stylesheet">
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<!--================= start Navigation Path ==================-->
+<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Navigation Path ==================-->
+<!--================= start Banner ==================-->
+<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<!--================= start Group Logo ==================-->
+<td bgcolor="#294563"><a href=""></a></td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
+<!--================= end Project Logo ==================-->
+<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+<tr>
+<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><input name="Search" value="Search" type="submit">
+<br>
+<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
+ the Apache Cocoon site
+
+
+ </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" bgcolor="#294563" colspan="2">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="6"><img alt="" height="8" width="6" src="../../skin/images/spacer.gif"></td><td valign="bottom">
+<table summary="selected tab" style="height: 1.8em" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</div>
+<!--================= end Tabs ==================-->
+</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Banner ==================-->
+<!--================= start Menu, NavBar, Content ==================-->
+<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top">
+<table summary="menu" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<!--================= start left top NavBar ==================-->
+<td rowspan="3" valign="top">
+<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
+</tr>
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td>
+<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
+<!--================= start Menu items ==================-->
+<div class="menu">
+<ul>
+<li>
+<font color="#CFDCED">Navigation</font>
+<ul>
+
+<li>
+<a href="../../index.html">Main</a>
+</li>
+
+<li>
+<a href="../index.html">User Documentation</a>
+</li>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Actions</font>
+<ul>
+
+<li>
+<a href="actions.html">Overview</a>
+</li>
+
+<li>
+<a href="database-actions.html">Database</a>
+</li>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Default</font>
+<ul>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Core</font>
+<ul>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Optional</font>
+<ul>
+
+<li>
+<span class="sel"><font color="#ffcc00">Sendmail Action</font></span>
+</li>
+
+<li>
+<a href="session-action.html">Session Action</a>
+</li>
+
+</ul>
+</li>
+</ul>
+</div>
+<!--================= end Menu items ==================-->
+</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
+</tr>
+<tr>
+<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td><td valign="top" width="100%">
+<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
+<!--================= start middle NavBar ==================-->
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+
+
+ </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+
+
+ </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end middle NavBar ==================-->
+<!--================= start Content==================-->
+<tr>
+<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="100%">
+<div class="content">
+<table class="title" summary="">
+<tr>
+<td valign="middle">
+<h1>Sendmail Action</h1>
+</td><script Language="Javascript">
+
+function printit(){
+if (window.print) {
+ window.print() ;
+} else {
+ var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+ WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
+}
+}
+</script><script Language="Javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+ document.write('<td nowrap="nowrap" width="40" align="center">');
+ document.write(' <a class="dida" href="javascript:printit()">');
+ document.write(' <img alt="Print this Page" src="../../skin/images/printer.gif" class="skin"><br>');
+ document.write(' print</a>');
+ document.write('</td>');
+}
+</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="sendmail-action.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+ PDF</a></td>
+</tr>
+</table>
+<p>
+<font size="-2">by Frank Ridderbusch</font>
+</p>
+<ul class="minitoc">
+<li>
+<a href="#Description">Description</a>
+</li>
+<li>
+<a href="#Usage">Usage</a>
+</li>
+<li>
+<a href="#Example+Code">Example Code</a>
+</li>
+<li>
+<a href="#Input%2FOutput+Parameter+Reference">Input/Output Parameter Reference</a>
+</li>
+<li>
+<a href="#Additional+Hint">Additional Hint</a>
+</li>
+</ul>
+
+<a name="N10013"></a><a name="Description"></a>
+<h3>Description</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>The Sendmail action is an action, which makes the capability
+ of sending an email message available to the sitemap. This
+ includes attaching binary files, which come either from another
+ Cocoon pipeline or from HTML file uploads. The Sendmail action
+ make the primary methods of the <a href="http://java.sun.com/products/javamail/">Java Mail
+ API</a> available to the sitemap.</p>
+<p>The Sendmail action is an alternative to the <a href="../xsp/sendmail.html">Sendmail logicsheet</a>.</p>
+</div>
+
+
+<a name="N10027"></a><a name="Usage"></a>
+<h3>Usage</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>Before the Sendmail action can be used it must be activated
+ either in Cocoons main sitemap or in a subsitemap, which is
+ used for your application. Include the below
+ <span class="codefrag">map:action</span> fragment inside the
+ <span class="codefrag">map:components</span> -> <span class="codefrag">map:actions</span>
+ tags.</p>
+<pre class="code">
+
+<map:components>
+ <map:actions>
+ <map:action name="sendmail" logger="sitemap.action.sendmail"
+ src="org.apache.cocoon.acting.Sendmail"/>
+ </map:actions>
+....
+</map:components>
+
+ </pre>
+</div>
+
+
+<a name="N1003E"></a><a name="Example+Code"></a>
+<h3>Example Code</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>This example uses a simple HTML form, which provides entry
+ fields for <span class="codefrag">subject</span>, <span class="codefrag">cc</span>,
+ <span class="codefrag">uploaded_file1</span> and the email <span class="codefrag">body</span>.
+ </p>
+<pre class="code">
+
+<form action="/cocoon/mail/send-a-mail"
+ method="POST"
+ enctype="multipart/form-data">
+
+<input type="text" name="subject" size="56" />
+...
+<input type="text" name="cc" size="56" />
+...
+<input type="file" name="uploaded_file1" size="56" />
+...
+<textarea name="body" rows="5" cols="72">
+</textarea>
+...
+</form>
+
+ </pre>
+<p>Please keep in mind, that it is important to use
+ <span class="codefrag">enctype="multipart/form-data"</span>, if you want to
+ upload files, which should be attached to an email message.
+ </p>
+<p>The posted HTTP request data is processed by this sitemap
+ fragment.</p>
+<pre class="code">
+
+<map:match pattern="mail/*">
+ <map:act type="sendmail">
+ <map:parameter name="smtphost" value="localhost"/>
+ <map:parameter name="from" value="cocoon@localhost"/>
+ <map:parameter name="to" value="maillinglist@somewhere.com"/>
+ <map:parameter name="subject" value="{request-param:subject}"/>
+ <map:parameter name="body" value="{request-param:body}"/>
+ <map:parameter name="cc" value="{request-param:cc}"/>
+ <map:parameter name="bcc" value="censor@somewhere.com"/>
+ <map:parameter name="attachments"
+ value="uploaded_file1 context://welcome.xml"/>
+ <map:generate src="mail/{status}.xml"/>
+ <map:serialize type="xml"/>
+ </map:act>
+</map:match>
+
+ </pre>
+<p>The input modules are used to supply some of the input
+ parameters for the Sendmail action. In this example, apart
+ from the <span class="codefrag">uploaded_file1</span> request parameter, a
+ second file is attached to the email message, using the Cocoon
+ protocol notation (the file <span class="codefrag">welcome.xml</span> from the
+ Cocoon context directory). The result of sending the email
+ message is passed back into the sitemap through the
+ <span class="codefrag">status</span> parameter and is used to provide the user
+ with a feedback. (The transformation is left as an exercise to
+ the reader).</p>
+<p>Please consider the security implications, if you let a user
+ specify an email address in an input form. A malicious user
+ might abuse this to send SPAM emails. So, this example is
+ probably only useful in an intranet application, where users
+ can mostly be considered well behaved.</p>
+</div>
+
+
+<a name="parameters"></a>
+ <a name="N10078"></a><a name="Input%2FOutput+Parameter+Reference"></a>
+<h3>Input/Output Parameter Reference</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>The following is the list of parameters, which can be passed
+ from the sitemap into the Sendmail action.</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+
+<tr>
+
+<th colspan="1" rowspan="1">Name:</th>
+ <th colspan="1" rowspan="1">Required?</th>
+ <th colspan="1" rowspan="1">Description:</th>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">smtphost</td>
+ <td colspan="1" rowspan="1">no</td>
+ <td colspan="1" rowspan="1">The IP-address or the name of the host, which should
+ deliver the email message. Better know as the mail
+ transfer agent or short MTA.</td>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">to</td>
+ <td colspan="1" rowspan="1">yes</td>
+ <td colspan="1" rowspan="1">Sets the destination/to address of the email message.
+ This can be a list of comma separated email
+ addresses.</td>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">cc</td>
+ <td colspan="1" rowspan="1">no</td>
+ <td colspan="1" rowspan="1">Sets the recipients of a carbon copy of this email. This
+ can be a list of comma separated email addresses.</td>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">bcc</td>
+ <td colspan="1" rowspan="1">no</td>
+ <td colspan="1" rowspan="1">Sets the recipients of a black carbon copy of the
+ email. This can be a list of comma separated email
+ addresses.</td>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">from</td>
+ <td colspan="1" rowspan="1">yes</td>
+ <td colspan="1" rowspan="1">Sets the from address of the message.</td>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">subject</td>
+ <td colspan="1" rowspan="1">no</td>
+ <td colspan="1" rowspan="1">Sets the subject line of the message.</td>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">body</td>
+ <td colspan="1" rowspan="1">no</td>
+ <td colspan="1" rowspan="1">Sets the body text of the message.</td>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">charset</td>
+ <td colspan="1" rowspan="1">no</td>
+ <td colspan="1" rowspan="1">Sets the character set for encoding the message. This
+ tag has only an effect, if no attachments are send.</td>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">attachment</td>
+ <td colspan="1" rowspan="1">no</td>
+ <td colspan="1" rowspan="1">Sets the attachment for this email. This is a blank
+ separated list. If an argument contains a ":", it is
+ assumed, that a Cocoon internal protocol is specified
+ (ex: <span class="codefrag">context://welcome.xml</span>). This means, that
+ the attachment comes from a Cocoon pipeline (internally an
+ <span class="codefrag">org.apache.excalibur.source.Source</span> object).
+ If the argument does not contain a colon, the argument
+ names a request parameter, which is a file upload through
+ a HTML form (internally an
+ <span class="codefrag">org.apache.cocoon.components.request.multipart.FilePart</span>
+ object).</td>
+
+</tr>
<!-- [CH] I believe deleting attachments should be handled at a different place
<tr>
<td>keep-attachment</td>
@@ -451,96 +451,96 @@
<code>false</code>. This means, that any uploads are
delete from Cocoons upload directory.</td>
</tr>
--->
-
-</table>
-<p>The following is the list of parameters, which are passed
- from Sendmail action back into the sitemap.</p>
-<table class="ForrestTable" cellspacing="1" cellpadding="4">
-
-<tr>
-
-<th colspan="1" rowspan="1">Name:</th>
- <th colspan="1" rowspan="1">Description:</th>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">status</td>
- <td colspan="1" rowspan="1">This parameter can take three values:
- <span class="codefrag">success</span>, <span class="codefrag">user-error</span> and
- <span class="codefrag">server-error</span>. <span class="codefrag">success</span> means,
- that the email message has been successfully delivered to
- the mail transfer host. <span class="codefrag">user-error</span> means,
- that there was a problem with at least one of the specified
- email addresses (to, cc, bcc or
- from). <span class="codefrag">server-error</span> means, that there was
- some problem delivering the message to the mail transfer
- host. In effect, this parameter can be used to inform the
- user about the outcome of sending the email message.</td>
-
-</tr>
-
-<tr>
-
-<td colspan="1" rowspan="1">message</td>
- <td colspan="1" rowspan="1">This parameter contain some explanatory text, if the
- message couldn't be delivered. It is unset, if the email
- message had been successfully send.</td>
-
-</tr>
-
-</table>
-</div>
-
-
-<a name="hint"></a>
- <a name="N10185"></a><a name="Additional+Hint"></a>
-<h3>Additional Hint</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>Cocoon provides the capability, to automatically parse a file
- upload out of an incoming HTTP request. Depending on the
- setting of the parameter <span class="codefrag">autosave-uploads</span>
- (default is <span class="codefrag">false</span>) in Cocoons
- <span class="codefrag">web.xml</span> file, the file upload is either stored in
- memory (<span class="codefrag">false</span>) for further processing or stuffed
- into Cocoons upload directory (<span class="codefrag">true</span>).</p>
-<p>In theory, it should be equal whether the file upload data
- comes from memory of from file. In my particular setup (Linux,
- Tomcat 4.0.4, Mozilla 1.3 and JDK 1.4.1_02) I was unable to
- get the file uploading working with
- <span class="codefrag">autosave-upload=false</span>. Somehow the attached
- binary data was distorted (a GIF file does not appear to be a
- GIF any more).</p>
-<p>With <span class="codefrag">autosave-upload=true</span> it worked flawlessly,
- even attaching multiple files.</p>
-</div>
-
-</div>
-</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<!--================= end Content==================-->
-</table>
-</td>
-</tr>
-</table>
-<!--================= end Menu, NavBar, Content ==================-->
-<!--================= start Footer ==================-->
-<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
-<tr>
-<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
-</tr>
-<tr>
-<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright ©
- 1999-2003 The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
- document.write(" - "+"Last Published: " + document.lastModified);
- // --></script></font></td>
-</tr>
-<tr>
-<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
-</tr>
-</table>
-<!--================= end Footer ==================-->
-</body>
-</html>
+-->
+
+</table>
+<p>The following is the list of parameters, which are passed
+ from Sendmail action back into the sitemap.</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+
+<tr>
+
+<th colspan="1" rowspan="1">Name:</th>
+ <th colspan="1" rowspan="1">Description:</th>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">status</td>
+ <td colspan="1" rowspan="1">This parameter can take three values:
+ <span class="codefrag">success</span>, <span class="codefrag">user-error</span> and
+ <span class="codefrag">server-error</span>. <span class="codefrag">success</span> means,
+ that the email message has been successfully delivered to
+ the mail transfer host. <span class="codefrag">user-error</span> means,
+ that there was a problem with at least one of the specified
+ email addresses (to, cc, bcc or
+ from). <span class="codefrag">server-error</span> means, that there was
+ some problem delivering the message to the mail transfer
+ host. In effect, this parameter can be used to inform the
+ user about the outcome of sending the email message.</td>
+
+</tr>
+
+<tr>
+
+<td colspan="1" rowspan="1">message</td>
+ <td colspan="1" rowspan="1">This parameter contain some explanatory text, if the
+ message couldn't be delivered. It is unset, if the email
+ message had been successfully send.</td>
+
+</tr>
+
+</table>
+</div>
+
+
+<a name="hint"></a>
+ <a name="N10185"></a><a name="Additional+Hint"></a>
+<h3>Additional Hint</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>Cocoon provides the capability, to automatically parse a file
+ upload out of an incoming HTTP request. Depending on the
+ setting of the parameter <span class="codefrag">autosave-uploads</span>
+ (default is <span class="codefrag">false</span>) in Cocoons
+ <span class="codefrag">web.xml</span> file, the file upload is either stored in
+ memory (<span class="codefrag">false</span>) for further processing or stuffed
+ into Cocoons upload directory (<span class="codefrag">true</span>).</p>
+<p>In theory, it should be equal whether the file upload data
+ comes from memory of from file. In my particular setup (Linux,
+ Tomcat 4.0.4, Mozilla 1.3 and JDK 1.4.1_02) I was unable to
+ get the file uploading working with
+ <span class="codefrag">autosave-upload=false</span>. Somehow the attached
+ binary data was distorted (a GIF file does not appear to be a
+ GIF any more).</p>
+<p>With <span class="codefrag">autosave-upload=true</span> it worked flawlessly,
+ even attaching multiple files.</p>
+</div>
+
+</div>
+</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end Content==================-->
+</table>
+</td>
+</tr>
+</table>
+<!--================= end Menu, NavBar, Content ==================-->
+<!--================= start Footer ==================-->
+<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
+</tr>
+<tr>
+<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright ©
+ 1999-2003 The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
+ document.write(" - "+"Last Published: " + document.lastModified);
+ // --></script></font></td>
+</tr>
+<tr>
+<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
+</tr>
+</table>
+<!--================= end Footer ==================-->
+</body>
+</html>
1.2 +106 -205 cocoon-site/site/2.1/userdocs/actions/sendmail-action.pdf
<<Binary file>>
1.5 +336 -336 cocoon-site/site/2.1/userdocs/actions/session-action.html
Index: session-action.html
===================================================================
RCS file: /home/cvs/cocoon-site/site/2.1/userdocs/actions/session-action.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- session-action.html 21 May 2003 15:23:33 -0000 1.4
+++ session-action.html 19 Jul 2003 06:50:19 -0000 1.5
@@ -1,336 +1,336 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Session Action</title>
-<link type="text/css" href="../../skin/page.css" rel="stylesheet">
-</head>
-<body text="#000000" bgcolor="#FFFFFF">
-<!--================= start Navigation Path ==================-->
-<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
-</tr>
-<tr>
-<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-<!--================= end Navigation Path ==================-->
-<!--================= start Banner ==================-->
-<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<!--================= start Group Logo ==================-->
-<td bgcolor="#294563"><a href="http://xml.apache.org"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/group-logo.gif"></a></td>
-<!--================= end Group Logo ==================-->
-<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
-<!--================= end Project Logo ==================-->
-<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
-<form target="_blank" action="http://www.google.com/search" method="get">
-<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
-<tr>
-<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
-<br>
-<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
- the Apache Cocoon site
-
-
- </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
-</tr>
-</table>
-</form>
-</td>
-<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td valign="bottom" bgcolor="#294563" colspan="2">
-<!--================= start Tabs ==================-->
-<div class="tab">
-<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="8"><img alt="" height="8" width="8" src="../../skin/images/spacer.gif"></td><td valign="bottom">
-<table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
-</tr>
-</table>
-</td>
-</tr>
-</table>
-</div>
-<!--================= end Tabs ==================-->
-</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-<!--================= end Banner ==================-->
-<!--================= start Menu, NavBar, Content ==================-->
-<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td valign="top">
-<table summary="menu" border="0" cellspacing="0" cellpadding="0">
-<tr>
-<!--================= start left top NavBar ==================-->
-<td rowspan="3" valign="top">
-<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
-</tr>
-<tr>
-<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-</td>
-<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
-<!--================= start Menu items ==================-->
-<div class="menu">
-<ul>
-<li>
-<font color="#CFDCED">Navigation</font>
-<ul>
-
-<li>
-<a href="../../index.html">Main</a>
-</li>
-
-<li>
-<a href="../index.html">User Documentation</a>
-</li>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Actions</font>
-<ul>
-
-<li>
-<a href="actions.html">Overview</a>
-</li>
-
-<li>
-<a href="database-actions.html">Database</a>
-</li>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Default</font>
-<ul>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Core</font>
-<ul>
-
-</ul>
-</li>
-<li>
-<font color="#CFDCED">Optional</font>
-<ul>
-
-<li>
-<span class="sel"><font color="#ffcc00">Session Action</font></span>
-</li>
-
-<li>
-<a href="sendmail-action.html">Sendmail Action</a>
-</li>
-
-</ul>
-</li>
-</ul>
-</div>
-<!--================= end Menu items ==================-->
-</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
-</tr>
-<tr>
-<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-</table>
-</td><td valign="top" width="100%">
-<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
-<!--================= start middle NavBar ==================-->
-<tr>
-<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
-
- </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
-
- </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<tr>
-<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<!--================= end middle NavBar ==================-->
-<!--================= start Content==================-->
-<tr>
-<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="100%">
-<div class="content">
-<table class="title" summary="">
-<tr>
-<td valign="middle">
-<h1>Session Action</h1>
-</td><script Language="Javascript">
-
-function printit(){
-if (window.print) {
- window.print() ;
-} else {
- var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
-document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
- WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
-}
-}
-</script><script Language="Javascript">
-var NS = (navigator.appName == "Netscape");
-var VERSION = parseInt(navigator.appVersion);
-if (VERSION > 3) {
- document.write('<td nowrap="nowrap" width="40" align="center">');
- document.write(' <a class="dida" href="javascript:printit()">');
- document.write(' <img alt="Print this Page" src="../../skin/images/printer.gif" border="0"><br>');
- document.write(' print</a>');
- document.write('</td>');
-}
-</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="session-action.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
- PDF</a></td>
-</tr>
-</table>
-<p>
-<font size="-2">by Carsten Ziegeler</font>
-</p>
-<ul class="minitoc">
-<li>
-<a href="#Session+Action">Session Action</a>
-<ul class="minitoc">
-<li>
-<a href="#Creating+a+Session">Creating a Session</a>
-</li>
-<li>
-<a href="#Terminating+a+Session">Terminating a Session</a>
-</li>
-</ul>
-</li>
-<li>
-<a href="#Configuration">Configuration</a>
-</li>
-</ul>
-
-<a name="N1001C"></a><a name="Session+Action"></a>
-<h3>Session Action</h3>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- The session action helps in managing the session of a user on
- the server. It can create and terminate a session. The function
- is controlled by a parameter named 'action'.
- </p>
-<p>For more information on session handling and session contexts
- have a look at the <a href="../../developing/webapps/session.html">Session Context documentation</a>.</p>
-<a name="N1002B"></a><a name="Creating+a+Session"></a>
-<h4>Creating a Session</h4>
-<div style="margin-left: 0 ; border: 2px">
-<p>
- To create a session (if it not already exists) simply add the
- action in your pipeline:
- </p>
-<pre class="code">
-
- <map:act type="session"/>
-
-</pre>
-<p>This is the equivalent to specify the 'action' parameter
- with the value 'create':</p>
-<pre class="code">
-
- <map:act type="session">
- <map:parameter name="action" value="create"/>
- </map:act>
-
-</pre>
-</div>
-<a name="N10041"></a><a name="Terminating+a+Session"></a>
-<h4>Terminating a Session</h4>
-<div style="margin-left: 0 ; border: 2px">
-<p>Terminating a session is as easy as creating a session, simply
- add the action to your pipeline and set the 'action' parameter
- to 'terminate':</p>
-<pre class="code">
-
- <map:act type="session">
- <map:parameter name="action" value="terminate"/>
- </map:act>
-
-</pre>
-<p>This terminates the session immediately.</p>
-<p>You can optionally specifiy the 'mode' parameter which controlls
- the termination of the session. You have the choice between
- 'immediately' (the default) and 'if-unsued'. If you use the
- mode 'if-unused', the session is only terminated, if no session
- context exists for the user:</p>
-<pre class="code">
-
- <map:act type="session">
- <map:parameter name="action" value="terminate"/>
- <map:parameter name="mode" value="if-unused"/>
- </map:act>
-
-</pre>
-</div>
-</div>
-
-<a name="N1005B"></a><a name="Configuration"></a>
-<h3>Configuration</h3>
-<div style="margin-left: 0 ; border: 2px">
-<ul>
-
-<li>Name : session</li>
-
-<li>Class: org.apache.cocoon.webapps.session.acting.SessionAction</li>
-
-</ul>
-</div>
-
-</div>
-</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
-</tr>
-<!--================= end Content==================-->
-</table>
-</td>
-</tr>
-</table>
-<!--================= end Menu, NavBar, Content ==================-->
-<!--================= start Footer ==================-->
-<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
-<tr>
-<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
-</tr>
-<tr>
-<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright ©
- 1999-2003 The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
- document.write(" - "+"Last Published: " + document.lastModified);
- // --></script></font></td>
-</tr>
-<tr>
-<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
-</tr>
-</table>
-<!--================= end Footer ==================-->
-</body>
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Session Action</title>
+<link type="text/css" href="../../skin/page.css" rel="stylesheet">
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<!--================= start Navigation Path ==================-->
+<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Navigation Path ==================-->
+<!--================= start Banner ==================-->
+<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<!--================= start Group Logo ==================-->
+<td bgcolor="#294563"><a href=""></a></td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
+<!--================= end Project Logo ==================-->
+<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
+<tr>
+<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><input name="Search" value="Search" type="submit">
+<br>
+<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
+ the Apache Cocoon site
+
+
+ </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" bgcolor="#294563" colspan="2">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="6"><img alt="" height="8" width="6" src="../../skin/images/spacer.gif"></td><td valign="bottom">
+<table summary="selected tab" style="height: 1.8em" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</div>
+<!--================= end Tabs ==================-->
+</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+<!--================= end Banner ==================-->
+<!--================= start Menu, NavBar, Content ==================-->
+<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td valign="top">
+<table summary="menu" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<!--================= start left top NavBar ==================-->
+<td rowspan="3" valign="top">
+<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
+</tr>
+<tr>
+<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td>
+<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
+<!--================= start Menu items ==================-->
+<div class="menu">
+<ul>
+<li>
+<font color="#CFDCED">Navigation</font>
+<ul>
+
+<li>
+<a href="../../index.html">Main</a>
+</li>
+
+<li>
+<a href="../index.html">User Documentation</a>
+</li>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Actions</font>
+<ul>
+
+<li>
+<a href="actions.html">Overview</a>
+</li>
+
+<li>
+<a href="database-actions.html">Database</a>
+</li>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Default</font>
+<ul>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Core</font>
+<ul>
+
+</ul>
+</li>
+<li>
+<font color="#CFDCED">Optional</font>
+<ul>
+
+<li>
+<a href="sendmail-action.html">Sendmail Action</a>
+</li>
+
+<li>
+<span class="sel"><font color="#ffcc00">Session Action</font></span>
+</li>
+
+</ul>
+</li>
+</ul>
+</div>
+<!--================= end Menu items ==================-->
+</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
+</tr>
+<tr>
+<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+</table>
+</td><td valign="top" width="100%">
+<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
+<!--================= start middle NavBar ==================-->
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+
+
+ </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
+
+
+ </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end middle NavBar ==================-->
+<!--================= start Content==================-->
+<tr>
+<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="100%">
+<div class="content">
+<table class="title" summary="">
+<tr>
+<td valign="middle">
+<h1>Session Action</h1>
+</td><script Language="Javascript">
+
+function printit(){
+if (window.print) {
+ window.print() ;
+} else {
+ var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+ WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
+}
+}
+</script><script Language="Javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+ document.write('<td nowrap="nowrap" width="40" align="center">');
+ document.write(' <a class="dida" href="javascript:printit()">');
+ document.write(' <img alt="Print this Page" src="../../skin/images/printer.gif" class="skin"><br>');
+ document.write(' print</a>');
+ document.write('</td>');
+}
+</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="session-action.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+ PDF</a></td>
+</tr>
+</table>
+<p>
+<font size="-2">by Carsten Ziegeler</font>
+</p>
+<ul class="minitoc">
+<li>
+<a href="#Session+Action">Session Action</a>
+<ul class="minitoc">
+<li>
+<a href="#Creating+a+Session">Creating a Session</a>
+</li>
+<li>
+<a href="#Terminating+a+Session">Terminating a Session</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Configuration">Configuration</a>
+</li>
+</ul>
+
+<a name="N1001C"></a><a name="Session+Action"></a>
+<h3>Session Action</h3>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ The session action helps in managing the session of a user on
+ the server. It can create and terminate a session. The function
+ is controlled by a parameter named 'action'.
+ </p>
+<p>For more information on session handling and session contexts
+ have a look at the <a href="../../developing/webapps/session.html">Session Context documentation</a>.</p>
+<a name="N1002B"></a><a name="Creating+a+Session"></a>
+<h4>Creating a Session</h4>
+<div style="margin-left: 0 ; border: 2px">
+<p>
+ To create a session (if it not already exists) simply add the
+ action in your pipeline:
+ </p>
+<pre class="code">
+
+ <map:act type="session"/>
+
+</pre>
+<p>This is the equivalent to specify the 'action' parameter
+ with the value 'create':</p>
+<pre class="code">
+
+ <map:act type="session">
+ <map:parameter name="action" value="create"/>
+ </map:act>
+
+</pre>
+</div>
+<a name="N10041"></a><a name="Terminating+a+Session"></a>
+<h4>Terminating a Session</h4>
+<div style="margin-left: 0 ; border: 2px">
+<p>Terminating a session is as easy as creating a session, simply
+ add the action to your pipeline and set the 'action' parameter
+ to 'terminate':</p>
+<pre class="code">
+
+ <map:act type="session">
+ <map:parameter name="action" value="terminate"/>
+ </map:act>
+
+</pre>
+<p>This terminates the session immediately.</p>
+<p>You can optionally specifiy the 'mode' parameter which controlls
+ the termination of the session. You have the choice between
+ 'immediately' (the default) and 'if-unsued'. If you use the
+ mode 'if-unused', the session is only terminated, if no session
+ context exists for the user:</p>
+<pre class="code">
+
+ <map:act type="session">
+ <map:parameter name="action" value="terminate"/>
+ <map:parameter name="mode" value="if-unused"/>
+ </map:act>
+
+</pre>
+</div>
+</div>
+
+<a name="N1005B"></a><a name="Configuration"></a>
+<h3>Configuration</h3>
+<div style="margin-left: 0 ; border: 2px">
+<ul>
+
+<li>Name : session</li>
+
+<li>Class: org.apache.cocoon.webapps.session.acting.SessionAction</li>
+
+</ul>
+</div>
+
+</div>
+</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<!--================= end Content==================-->
+</table>
+</td>
+</tr>
+</table>
+<!--================= end Menu, NavBar, Content ==================-->
+<!--================= start Footer ==================-->
+<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
+</tr>
+<tr>
+<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright ©
+ 1999-2003 The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
+ document.write(" - "+"Last Published: " + document.lastModified);
+ // --></script></font></td>
+</tr>
+<tr>
+<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
+</tr>
+</table>
+<!--================= end Footer ==================-->
+</body>
+</html>
1.2 +89 -145 cocoon-site/site/2.1/userdocs/actions/session-action.pdf
<<Binary file>>