You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Jamie Tsao <jt...@atinera.com> on 2001/06/15 20:43:42 UTC

Extension mapping question

Hi,

I'm having some trouble understanding how the extension mapping works
for servlets and struts.  In the web.xml file, the following extension
mapping for the struts ActionServlet is used:

  <servlet-mapping>
    <servlet-name>ActionServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


I understand that any request URIs that end with .do will be passed to
the ActionServlet.  What I don't understand is where the .do extension
is even attached.  All of my forms have an action of /login or
/checkout, for example.  I "could" specify /login.do or /checkout.do,
but I'm not.  So what I don't understand is why do these requests still
get mapped to the ActionServlet ?  Is ".do" being attached to the
request URI somehow and where ?  when ?

I just need this little bit clarified.

Thanks,

Jamie

Re: Extension mapping question

Posted by "Craig R. McClanahan" <cr...@apache.org>.

On Fri, 15 Jun 2001, Jamie Tsao wrote:

> Hi,
> 
> I'm having some trouble understanding how the extension mapping works
> for servlets and struts.  In the web.xml file, the following extension
> mapping for the struts ActionServlet is used:
> 
>   <servlet-mapping>
>     <servlet-name>ActionServlet</servlet-name>
>     <url-pattern>*.do</url-pattern>
>   </servlet-mapping>
> 
> 
> I understand that any request URIs that end with .do will be passed to
> the ActionServlet.

That is correct.

>  What I don't understand is where the .do extension
> is even attached.  All of my forms have an action of /login or
> /checkout, for example.  I "could" specify /login.do or /checkout.do,
> but I'm not.  So what I don't understand is why do these requests still
> get mapped to the ActionServlet ?  Is ".do" being attached to the
> request URI somehow and where ?  when ?
>

The basic idea is that Struts works equally well when you use extension
mapping (*.do) or path mapping (/do/*), so you should have to make minimal
changes to change your mind.  Therefore, all of the references to a
particular action path in the struts-config.xml file can be made without
the ".do" extension -- and the <html:form> tag will add the extension if
necessary -- so that you generally don't have to think about it.

If you're creating your own hyperlinks or <forward> definitions, you
currently do need to include the complete path.
 
> I just need this little bit clarified.
> 
> Thanks,
> 
> Jamie
> 

Craig