Hi, Am Freitag, den 14.03.2008, 09:00 -0700 schrieb Tobias Bocanegra: > > First, I think we either define this globally for all inclusions through > > the RequestDispatcher or we leave it out altogether. We should not > > specify a different default for an include through <sling:include> and > > for an include through the RequestDispatcher retrieved from the request. > i think this i only a problem when generating 'HTML' output. all other > servlets that include other ones or proxy them, probably want to keep > the request method. > > i think it's a fundamental problem between "POST as replacement for > GET with ?" and "POST to writeback content".
This is thin ice of course: POST and GET with ? are not the same - at least in the author's orignial intention ;-) > the ujax post servlet > should only be used in the later case. since the first is merely > parameter passing, i think we can transform it to GETs for included > requests. > > > Second, I question the default value as such: AFAIK the servlet spec has > > no saying about changing the method name in the included request. In > > fact, IMHO the basic assumption is that the include operates with the > > same setup as the including request - except if the reqeust object is > > overwritten to changes things. > > > > BTW: this is only an issue for the first include as further includes > > from the first include (transitives) will just not see the original > > method anymore as it is hidden by the first include. > > Am Donnerstag, den 13.03.2008, 03:01 -0700 schrieb Bertrand Delacretaz > > (JIRA): > this is exactly the problem eg. when using a 'proxy servlet' that the > request needs > to keep to original method. > > so i think defaulting it to force a GET is ok. maybe this can be > exposed better in the api. eg (silly name, of course) > > slingReq.getRequestDispatcherThatForcesGet() > > regards, toby If you use the getRequestDispatcher method, you may also pass the RequestDispatcherOptions setting. But this proposal in fact gives way to another one: How about a new tag: <sling:includeGet> which would behave exactly like <sling:include> except that the include will use the RequestDispatcherOption for GET. WDYT Regards Felix > > > > > > [ > > > https://issues.apache.org/jira/browse/SLING-325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12578219#action_12578219 > > > ] > > > > > > Bertrand Delacretaz commented on SLING-325: > > > ------------------------------------------- > > > > > > > how about a 'forceGet' attribute with default to 'true' if not set ? > > > > > > I like this, and I'd even tend to suggest always forcing to GET for > > includes. > > > > > > Using includes to process POST or other requests (except HEAD maybe) > > sounds scary, but that's just a gut feeling, I don't have precise examples. > > > > > > So I'm ok for either a forceGet option or for always forcing GET without > > the option for now, and adding the option later if we ever need it. > > > > > > > Add RequestDispatcherOptions.OPT_REQUEST_METHOD > > > > ----------------------------------------------- > > > > > > > > Key: SLING-325 > > > > URL: https://issues.apache.org/jira/browse/SLING-325 > > > > Project: Sling > > > > Issue Type: New Feature > > > > Components: Scripting > > > > Reporter: Tobias Bocanegra > > > > > > > > I'm facing a problem with POST handling in scripts. i have a 'main' > > script that includes others (header, navigation, footer, etc.) using > > <sling:include/>. > > > > now i have a html form that uses (multipart) POST that i want to > > handle myself and not with the ujax post servlet. therefor i added a > > 'POST.jsp' beside my 'html.jsp' of the main script. this works. now the > > problem is, that all included resources that do not have a POST.jsp are > > rendered by the ujax post servlet, which is not what i want. of course i > > can add POST.jsp to all other scripts but that's a bit tiresome. > > > > suggest to: > > > > - add new RequestDispatcherOption OPT_REQUEST_METHOD that allows > > override of the method (maybe limit to 'GET') > > > > - extend the <sling:include/> tag to take a 'method' attribute and > > default it to GET, if absent (it would be tedious to specify the GET for > > every include, so rather make it default). > > > > > > > > >
