> From: Stefan Riegel [mailto:[EMAIL PROTECTED]]
> 
> Hello, everybody,
> 
> I do not understand the XSP upload example. Yes, it works fine, but I
would
> like to understand as much as possible. I guess their is some "magic"
behind
> the scene.
> 
> I did some reading of the API Javadoc, but I'am still not experienced
enough
> reading source code. What to do? Should I give up learning Cocoon :-(

Try reading Java source code generated from the XSP.


> The example XSP-Source follows. I added comments about what I don't
> understand.
> 
> 
> <?xml version="1.0" encoding="ISO-8859-1"?>
> 
> <!-- CVS: $Id: upload.xsp,v 1.3 2002/02/09 06:21:57 vgritsenko Exp $
-->
> 
> 
> <!--
> QUESTION: the namespace declarations for request, response and log are
> not used and could be omitted? Is this correct?
> -->

If not used then can be omitted.


> <xsp:page language="java"
>           xmlns:xsp="http://apache.org/xsp";
>           xmlns:xsp-request="http://apache.org/xsp/request/2.0";
>           xmlns:xsp-response="http://apache.org/xsp/response/2.0";
>           xmlns:log="http://apache.org/xsp/log/2.0";>
> 
>   <xsp:structure>
> <!--
> QUESTION: Same with the XSPUtil import. Am I right?
> -->

Same.
 

>
<xsp:include>org.apache.cocoon.components.language.markup.xsp.XSPUtil</x
sp:i
> nclude>
> 
>
<xsp:include>org.apache.avalon.framework.context.ContextException</xsp:i
nclu
> de>
>   </xsp:structure>
> 
> <!--
> QUESTIONS: I do not understand this part. Who calls conceptualize?

Contextualize. Avalon does.
See
http://jakarta.apache.org/avalon/framework/reference-the-lifecycle.html


>    Where does context
> (org.apache.cocoon.generation.ServletGenerator.context?)
>    come from?

Avalon gives.
http://jakarta.apache.org/avalon/api/org/apache/avalon/framework/context
/Context.html


> And the get method of context?

See link above.


> Their must be some "build in"
> upload
>    functionality, please explain if You are patient enough.

Yes, there is. And it uses maybeupload library, or Multipart request
parser. See org.apache.cocoon.components.request package.

Vadim


> -->
>   <xsp:logic>
>   File uploadDir = null;
>   /** Contextualize this class */
>   public void contextualize(Context context) throws ContextException {
>     uploadDir = (File) context.get(Constants.CONTEXT_UPLOAD_DIR);
>   }
>   </xsp:logic>
> 
>   <page>
>    <title>This form allows you upload files</title>
>    <content>
>      <para>
>        <form method="post" enctype="multipart/form-data"
> action="upload.xsp">
>          File:  <input type="file" name="uploaded_file" size="50" />
>      <p><input type="submit" value="Upload File" /></p>
>        </form>
>      </para>
>      <para>
>      <ul>
>        <xsp:logic>
>         getLogger().debug("Dir=" + uploadDir);
>          String[] filelist = uploadDir.list();
>          <![CDATA[
>          getLogger().debug("List=" + filelist.length);
>          for (int i = 0; i < filelist.length; i++) {
>             getLogger().debug("File [" + i + "]=" + filelist[i]);
>          ]]>
>            <li>
>              <xsp:expr>filelist[i]</xsp:expr>
>            </li>
>          <![CDATA[
>          }
>          ]]>
>        </xsp:logic>
>      </ul>
>      </para>
>      <para>Brought to you by Cocoon at <xsp:expr>new
> Date()</xsp:expr>.</para>
> 
>    </content>
>   </page>
> </xsp:page>
> 
> 
> Thank You.
> 
> Regards
> Stefan
> --
> 
> Stefan Riegel


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

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

Reply via email to