What would be the best way to approach this functionality?

I have an XML which acts as source data for a multi-framed web 
application.
At some point I want a FORM in one of those HTML pages to send email -- 
take the to: and from: addresses but use a set of parameters which are 
nodes in the XML.

So basically I want, upon submission, for Cocoon to take the parameters, 
take the necessary nodes  from the XML, send email via javax.mail, and 
then style a result page based on the success/fail of the send, also 
using parameters in the source XML.

Here's an example of what I'd thought I'd do:

a) Create an XSP by pulling in what is needed from the source XML and 
the items from the FORM into a <xsp:page> root and a new <apputil:mail> 
element:

        <map:match pattern="sendmail.xsp"><!-- the action of the FORM -->
                <map:generate src="sourcedata.xml" /><!-- our source data -->
                <map:transform src="sourcedata-to-sendmail.xsl">
                        <map:parameter name="use-request-parameters" value="true"/>
                </map:transform>
                <map:serialize type="xml"/>
        </map:match>

So a doc that is like this:
        <source>
                <name>Foo</name>
                <style>bar.css</style>
                <message>Thanks for making Foo #1 in Lichtenstein.</message>
        </source>
Becomes this:
        <xsp:page>
                <apputil:mail>
                        <!-- form bits -->
                        <name>Foo</name>
                        <style>bar.css</style>
                        <message>Thanks for making Foo #1 in Lichtenstein.</message>
                </apputil>
        </xsp:page>

b) have apputil logicsheet ready, which will turn apputil:mail into a 
<result> element

c) Execute the XSP and style the result

        <map:match pattern="mail.xsp">
                <map:generate type="serverpages" src="cocoon:/sendmail.xsp" />
                <map:transform src="mail.xsl"/><!-- xsl logic based on the 
result element -->
                <map:serialize type="html"/>
        </map:match>

It seems like it should be much easier than this, however. Is there a 
better way?
Thanks!


n


---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>

Reply via email to