Matthias Wessendorf schrieb: > On Mon, Feb 9, 2009 at 10:21 AM, Werner Punz <werner.p...@gmail.com> wrote: >> Matthias Wessendorf schrieb: >>>> The Trinidad request queue has about 1000 lines of code, 80% of it(the >>>> entire iframe part, multi part form posts, the abstractions to hide >>> regarding iframe: >>> that is needed when you do an "ppr for a form that contains an upload". >>> XHR does not support that. >>> >>> So, you are saying the spec does only support XHR for ajax form submits ? >>> That would be sweet... But that would fit the current ignorance of Java EE >>> land >>> to generally (out of the box) not support (out of the box) the upload >>> case at all >>> (meaning, there is no standard API for processing uploads, every framework >>> has >>> its own). >>> >> I would not be so harsh all this currently is a huge work in progress as >> I could see from the differences between the spec and the RI... > > sure, here we should just implement that. I don't think that the TCK > does check for "Iframe communication channel presen" :-) > >> Since I am not in the EG I have >> only info from what I can gather from the released pdfs and javadocs >> and from the RI. The RI always seems to be ahead from the released PDFs >> so I usually take it as my core reference. >> >> a) I am aware of the upload issue and that you can only do it via >> iframes if you want to stay on a clean html side. I will give a short >> info on what I could gather from the spec and RI: >> >> Sending a form is, that you have to gather the viewstate and you have to >> send it as encoded String! >> also you have to add various parameters and you can define a map of >> passthrough values which have to be encoded similarily on the client side! >> >> The request must be queued and it must be send asynchronously. >> It is not clearly stated that you have to use xmlhttprequest for >> sending, the RI however currently uses xmlhttprequest only! > > which would cause serious bugs when one uses uploads :-) > >> Not sure if you can say an iframe post is an asynchronous post, but I >> assume so... >> >> >>> So, wouldn't that also mean there is no chance in doing "PPR form >>> submit" for upload cases, in >>> a standard way? Wouldn't that cause forks, different APIs etc for >>> different toolkits >> At the current state of the RI is not, and I am not sure if the spec has >> this loophole open, but as it is this needs to be clearly specified one >> way or the other! >> Otherwise we will have the next mess on our hands! >> My per >> >> The spec is rather vague on all this and the issue is that the RI as >> core reference at the last public release (which funnily is not the same >> as the last public released specs, the RI clearly is from mid december >> while the pdfs are from november), does not cover it yet, either means >> they are not aware of those issues or they simply do not have tackled it. > > IMO it is not the fault of JSF, that there is this unhappy situation w/ > uploads, > Java EE, or Servlet 3, should address that. If upload was supported as > first class > citizens in the JavaEE *umbrella* land, JSF spec would be more aware of it. > > Well, let's see what the final spec will contain. > > FYI. I pinged Andy Schwartz on this, how is Oracle's JSF spec dude.
Just curious, but I don't see why you say this is a JEE/Servlet issue. As I understand it, XmlHttpRequest works by manually iterating over the html DOM to find the input widgets, fetch their name+value, and then add the name+value to the XmlHttpRequest. But it is simply not possible to "fetch the value" (file contents) of a file upload widget from javascript; therefore it is never possible to send the contents of a file within an XmlHttpRequest. I would guess that Mojarra just ignores any file-upload widgets when building an XmlHttpRequest, ie partial-submit works fine except that any specified file is ignored. That doesn't seem to unreasonable to me considering the html limitations and that file-upload is fairly rare; just *don't* use them with partial submit. Is the extra complication of a whole iframe-based solution *just* to handle this case really worth it? Regards, Simon