You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Matt Hughes <mh...@feith.com> on 2005/02/17 20:31:43 UTC
Building accurate URI
Previously all the JSPs in my application were in the same folder. To
organize things a bit, I categorized them according to action and now
they are nice, but the problem is all the links in my application are
relative. And they all expect that they are in the same base folder,
but now they're not. Instead of prepending every single link my JSPs
with the context path, I was going to use <base href="" > to generate a
full URI up to and including the context path. The problem is: how do I
generate an accurate URI? If I use ServletRequest to generate the URI
this was:
getScheme() + "://" + getServerName() + ":" + getServerPort() +
getContextPath()
The URL that the user sees will now have a port number, if it didn't
have one before. OR, if the server is forwarding the request from
somewhere else, it might expose a whole new URI bypassing the forwarding
mechanism. My alternative was this:
String context = request.getContextPath();
String fullUrl = request.getRequestURL().toString();
URL url = new URL(fullUrl);
String path = url.getPath();
String base = fullUrl.substring(0,fullUrl.indexOf(path)) + context;
Where base is the base of my web application as it was typed by the
user. Does anyone forsee any problems with doing it this way? Any
other ideas or warnings against using <base href="" >
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Building accurate URI
Posted by Karan <ka...@resolution.com>.
Matt,
Try this:
href='<@html.rewrite page=""/>/FTL/resources/css/mainstyle.css'
(its in the freemarker syntax, so change that for JSPs)
When I use this, all links, etc. have to be given the path relative to
the context and not to your current document.
That way I can keep everythign in order, and if I ever change the
location of a particular document, a multiple-page search-and-replace is
all thats required.
HTHs,
Karan
Matt Hughes wrote:
> Previously all the JSPs in my application were in the same folder. To
> organize things a bit, I categorized them according to action and now
> they are nice, but the problem is all the links in my application are
> relative. And they all expect that they are in the same base folder,
> but now they're not. Instead of prepending every single link my JSPs
> with the context path, I was going to use <base href="" > to generate a
> full URI up to and including the context path. The problem is: how do I
> generate an accurate URI? If I use ServletRequest to generate the URI
> this was:
> getScheme() + "://" + getServerName() + ":" + getServerPort() +
> getContextPath()
>
> The URL that the user sees will now have a port number, if it didn't
> have one before. OR, if the server is forwarding the request from
> somewhere else, it might expose a whole new URI bypassing the forwarding
> mechanism. My alternative was this:
>
> String context = request.getContextPath();
>
> String fullUrl = request.getRequestURL().toString();
> URL url = new URL(fullUrl);
> String path = url.getPath();
> String base = fullUrl.substring(0,fullUrl.indexOf(path)) + context;
>
> Where base is the base of my web application as it was typed by the
> user. Does anyone forsee any problems with doing it this way? Any
> other ideas or warnings against using <base href="" >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
> .
>
--
CM II
Resolution Systems Inc.
/-- never compromise. what if you compromise and lose? --/
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org