You are completely right.
I have hope again... Thanks Carsten ;-)

I dive in this way.

I will tell you and complete the wiki.

Jean-Christophe

Carsten Ziegeler wrote:





-----Original Message-----
From: Jean-Christophe Kermagoret [mailto:[EMAIL PROTECTED] Sent: Thursday, April 01, 2004 10:56 AM
To: [EMAIL PROTECTED]
Subject: Re: Trying to solve a bug


I think the transfomer is OK.

When I look in my html form, everything is ok :
-- Begin html form code --

<form method="POST" enctype="multipart/form-data" action="portal?cocoon-portal-action=3&cocoon-portal-event=76" xmlns:coplet="http://apache.org/cocoon/portal/coplet/1.0";>
<input name="woody_submit_id" type="hidden"><input value="1404764e523640355b684e00066541184b53794d" type="hidden" name="continuation-id"> <div xmlns:wi="http://apache.org/cocoon/woody/instance/1.0"; class="tcContentBackground"> <table>


-- End --

It's when I press the submit button that I see the request-param:continuation-id is empty even if I'm sure the request has been parsed, because I saw the uploaded file in the upload-directory.

But when I do {request-param:continuation-id} in my pipeline, there is nothing.

Very strange



No :) If you look at the action tag of the form, there are two request
parameters appened (cocoon-portal-action and cocoon-portal-event).
As these two request parameters that are important for the portal
to work correctly (or precisly to link this request to the upload
coplet) are never received by Cocoon and therefore the portal
never gets them, the processing doesn't work properly and
you don't get the cont id.
It would work if it would look like this:
<form method="POST" enctype="multipart/form-data" action="portal">
<input name="cocoon-portal-action" type="hidden" value="3"/>
<input name="cocoon-portal-event" type="hidden" value="76"/> <input name="woody_submit_id" type="hidden">
<input value="1404764e523640355b684e00066541184b53794d" type="hidden"
name="continuation-id">
...


Carsten



Jean-Christophe Kermagoret wrote:



Carsten,
thanks for your answer

I already use hidden field for continuation id.

My action attribute doesn't contain anything important. Just submit value for example according the http://wiki.cocoondev.org/Wiki.jsp?page=WoodyCopletForPortalEngine

So, I have no request param appended to the uri in my

action attribute.


However, I still can't see any request-param, hidden or not.

Jean-Christophe

Carsten Ziegeler wrote:



Hi,

now I think I remember that I had the same problem when I

wrote the

upload coplet sample that is in the basket sample in our CVS.
If you specify an enctype attribute, the request


parameters appended

to the uri in the form action attribute are either not

send to Cocoon

or are not received by Cocoon - I tested this with Tomcat

and Jetty.

So I guess this is by design.
Now, the portal rewrites all links in order to process


them correctly.


When you use the portal-html-eventlink transformer, it rewrites a form action to something like "portal?cocoon-portal-action=24".
So, if then also an enctype attribute is set for the form, Cocoon never receives the request parameter.
Instead putting this into a hidden field works. So I think this is not a bug of the portal.
If you want to have a form with an enctype attribute you


have either

to expand the html-eventlink transformer so that it

creates in this

case a form element without request parameters in the action, but with some hidden input fields or you have to write your own transformer for this. You can use the BasketTransformer as

a starting

point.

HTH
Carsten





-----Original Message-----
From: Jean-Christophe Kermagoret


[mailto:[EMAIL PROTECTED] Sent:

Thursday, April 01, 2004 10:11 AM
To: [EMAIL PROTECTED]
Subject: Trying to solve a bug

Hi,
I'm trying to solve a bug but I need a little information.

Here is the bug I open it in bugzilla.

I need to use a upload form with the new cocoon portal. I use the portal-html-eventlink to transform the action attribute.

The problem

is enctype attribute is deleted by the portal-html-eventlink transformer.


I modified the tranformer to have the enctype attribute


if present.

I pass the continuation id in an hidden field, but when

the pipeline

is processed, the {request-param:continuation-id} is

empty but I saw

the uploaded file in the upload-directory.

If I don't use the transformer then I can set up a

pipeline in the

action attribute and I see the continuation-id

So,
I think there is a problem with the multipart request.


The fact to

put the enctype data is not enough. Why the portal

doesn't see the

request param ?

I tried to track the processing of the portal with Eclipse but I have non synchronized data between my souce and the

classes that are

generated so it's difficult to know what's happening.

Can anybody give me a little info to help me debugging this ?

--

Jean-Christophe Kermagoret
[EMAIL PROTECTED]













--

Jean-Christophe Kermagoret
[EMAIL PROTECTED]












--

Jean-Christophe Kermagoret
[EMAIL PROTECTED]





Reply via email to