The statement that hardcoding the context path in jsps is a bad idea is absolutely true. However, struts does not hardcode the context path.

Hardcoded
<form action="/context/account/add.do">

Dynamic
<html:form action="/account/add.do">

Struts inserts the context path dynamically at runtime which is most definitely not hardcoding.

I'm still not convinced we need the behavior you desire. The value of struts html tags comes from the ability to use a form bean to populate input elements. Without <html:form> being able to use a form bean the tags are pretty useless. How would <html:form> know which bean to use given

<html:form action="login.do">?

David






From: "Taylor, Jason" <[EMAIL PROTECTED]>
Reply-To: "Struts Developers List" <[EMAIL PROTECTED]>
To: "'Struts Developers List'" <[EMAIL PROTECTED]>
Subject: RE: [SURVEY] HREF attribute for FormTag
Date: Mon, 28 Oct 2002 13:54:29 -0800

I thought I addressed the form bean instance issue in my response to Craig's
post. The 'action' attribute would still work for finding the form bean
since getActionMappingName would return the same thing it always has. What
I'm talking about would *absolutely* support the form-bean identification
behavior of the existing FormTag.

I addressed the motivation for the proposal in the original posting. Bug
#12600 includes a description of a bridged architecture where a front end
web server forwards requests to a back end servlet container, expanding an
app-specific domain name into a generic domain name followed by the
application context path. This architecture works nicely so far as your
links are all relative. FormTag breaks this by always prepending context
path.

Moreover, I believe the current prepending behavior is not a best practice
for JSPs, and I don't think I'm the only one who would see it this way. As
an article cited on the JSTL specification home page
(http://www.onjava.com/pub/a/onjava/2002/08/14/jstl1.html?page=3) by Hans
Bergsten states while describing the <c:url> tag:
"relative URLs in HTML elements must either be relative to the page
that contains them or to the root directory of the server (if they start
with a slash). The first part of a URL path for a JSP page is called the
context path, and it may vary from installation to installation. You should
therefore avoid hard-coding the context path in the JSP pages."

What I'm trying to determine is whether the best means of achieving support
for the 'page-relative' URLs Bergsten describes is by adding an 'href'
attribute or changing the FormTag so that it wouldn't prepend the context
path unless the 'action' attribute started with a slash. I think the latter
is better, but I'd like to know if anyone has an opinion before I offer a
patch. Any ideas?

-JT

-----Original Message-----
From: David Graham [mailto:dgraham1980@;hotmail.com]
Sent: Monday, October 28, 2002 12:40 PM
To: [EMAIL PROTECTED]
Subject: RE: [SURVEY] HREF attribute for FormTag


You still haven't addressed why you want to do this. If <html:form> can't
lookup the form bean because the action doesn't match an action mapping,
then the other html form related tags are basically useless. You could just

use straight html for this.

David






>From: "Taylor, Jason" <[EMAIL PROTECTED]>
>Reply-To: "Struts Developers List" <[EMAIL PROTECTED]>
>To: "'Struts Developers List'" <[EMAIL PROTECTED]>
>Subject: RE: [SURVEY] HREF attribute for FormTag
>Date: Mon, 28 Oct 2002 12:21:51 -0800
>
>My first thought was you could use the 'action' to identify the form bean
>and the 'href' to specify a certain url to submit the form to.
>
>But then I looked at the JSTL <c:url> tag and it seems that a better
>algorithm would be to prepend the context path only when the 'action'
>begins
>with a slash ("/"). This seems better, and here's how it would work:
>
><html:form action="login.do">
> would become
><FORM ACTION="login.do">
>
>and
>
><html:form action="/login"> or <html:form action="/login.do">
> would become
><FORM ACTION="/myApp/login.do">
> or
><FORM ACTION="/myApp/module/login.do">
> as appropriate
>
>Perhaps if this were the right behavior, we would add a 'contextRelative'
>attribute to allow a form to be submitted across modules as with
>ActionForward.
>
>
>-JT
>
>
>-----Original Message-----
>From: Craig R. McClanahan [mailto:craigmcc@;apache.org]
>Sent: Monday, October 28, 2002 11:13 AM
>To: Struts Developers List
>Subject: Re: [SURVEY] HREF attribute for FormTag
>
>
>
>
>On Mon, 28 Oct 2002, Taylor, Jason wrote:
>
> > Date: Mon, 28 Oct 2002 10:38:21 -0800
> > From: "Taylor, Jason" <[EMAIL PROTECTED]>
> > Reply-To: Struts Developers List <[EMAIL PROTECTED]>
> > To: 'Struts Developers List' <[EMAIL PROTECTED]>
> > Subject: [SURVEY] HREF attribute for FormTag
> >
> > Hi all--
> >
> > There have been two bugs (#12600, #13871) logged against the form tag
>for
> > the behavior of its getActionMappingUrl method, which always prepends
>the
> > context path.
> >
> > Other html tags that produce a URL that is sent to the browser such as
> > LinkTag and ImgTag give the user at least the option of specifying
>precisely
> > the URL sent, but FormTag does not. See bug #12600 for an example of an
> > architecture where this could be a problem, or consider the case of
>someone
> > building a Struts application that submits a form to a third party for
> > processing, which just occurred to me as another test case.
> >
> > Does anyone oppose the idea of adding an 'href' attribute to FormTag,
>along
> > the lines of the 'href' attribute possessed by the LinkTag, that can be
>used
> > instead of the 'action' to determine where the form is submitted? If
>so,
>do
> > you have an alternative that allows me to prevent the context path from
> > being prepended? If not, I'd be happy to submit a patch.
> >
>
>One of the things you'd give up when doing this is the ability of Struts
>to identify the associated form bean. Therefore, it seems like this would
>only be of use in constructing a form to be submitted to a non-Struts app
>-- and, for that, you can just use a normal HTML <form> element directly.
>Am I missing something?
>
> > -JT
> >
>
>Craig
>
>
>--
>To unsubscribe, e-mail:
><mailto:struts-dev-unsubscribe@;jakarta.apache.org>
>For additional commands, e-mail:
><mailto:struts-dev-help@;jakarta.apache.org>


_________________________________________________________________
Get a speedy connection with MSN Broadband.  Join now!
http://resourcecenter.msn.com/access/plans/freeactivation.asp


--
To unsubscribe, e-mail: <mailto:struts-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-dev-help@;jakarta.apache.org>

_________________________________________________________________
Choose an Internet access plan right for you -- try MSN! http://resourcecenter.msn.com/access/plans/default.asp


--
To unsubscribe, e-mail: <mailto:struts-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-dev-help@;jakarta.apache.org>

Reply via email to