Hi Martin,

On 4/30/07, Martin Jones <[EMAIL PROTECTED]> wrote:
Hi,

This seems like an obvious question but I'd appreciate any answers. I
have several webapps running under tomcat that need to be able to
include the same sidebar in their .jps.  if the sidebar is within the
context, this works fine:

<%@ include file="sidebar.html" %>

However this requires me to keep a copy of sidebar.html (and all the
images) in each .war.  I'd rather keep a single copy of sidebar.html.
If I make a new context "static" in tomcat and place the sidebar +
images there, I can access it fine in my browser with the url:

http://localhost:8080/static/sidebar.html

but the naive change to the jsp:

<%@ include file="../static/sidebar.html" %>

The include directive is out of the question because according to it's syntax
http://java.sun.com/products/jsp/syntax/2.0/syntaxref209.html#1003408
it only accepts URLs that are relative to the web application (a.k.a Context).


fails with "the path specifies a resource outside the web
application".  Using jstl and import:

<c:import url="../static/sidebar.html"/>

JSTL's c:import tag has an attribute called context,
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/c/import.html
which allows one to access resources from other contexts (a.k.a web
applications) , however in order to function properly the crossContext
attribute of the web application's Context node must be enabled (set
to true).

From my experience setting crossContext to true has caused other
conflicts when 2 resources (Java Classes) have the same name in 2
different web applications that have crossContext enabled ---- it
could be that there was something wrong in my configuration. But, I'm
just letting you know about it.


leads to:

javax.servlet.jsp.JspTagException: /../static/sidebar.html

However, if I use the absolute path:

<c:import url="http://localhost:8080/static/sidebar.html"/>

the page is fine, but because the paths to the images are copied
directly from sidebar.html and included in the .jsp they are
incorrect.

In this case you would also need to change the URLs of the images to
be the absolute URL.


It seems to me that what I'm trying to accomplish is a fairly common
thing; I'd appreciate any pointers.

Normally it is considered bad practice to hardcode the entire URL, you
may want to store the domain etc in a constant and prefix it to the
rest of the URL.

Also, there might be better ways to accomplish this.

I don't know much about JNDI but it comes to mind, is it possible to
store images as a global JNDI resource.

Thanks,

Martin


-Regards
Rashmi

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to