The forwarding for this application, further, must be dynamic.
>To: [EMAIL PROTECTED] >From: Micael Padraig Og mac Grene <[EMAIL PROTECTED]> >Subject: Fwd: Re: Images and STRUTS: Craig > > >>Date: Tue, 23 Apr 2002 08:15:48 -0700 >>To: [EMAIL PROTECTED] >>From: Micael Padraig Og mac Grene <[EMAIL PROTECTED]> >>Subject: Fwd: Re: Images and STRUTS: Craig >> >>I have looked at this and have researched the area, Craig, and I have a >>simple question, I think. The suggested solution involving extension >>mapping is the default behavior of struts, is it not? >> >>At least the standard servlet mapping that came with structs in my case is: >> >> >> <!-- Standard Action Servlet Mapping --> >> <servlet-mapping> >> <servlet-name>action</servlet-name> >> <url-pattern>*.do</url-pattern> >> </servlet-mapping> >> >> >>Essentially what I want to do is the following: access html pages which >>reference .swf (Flash) files (templates) with relative references, e.g., >>template1.swf, holding arrays of other .swf files (photos) which all have >>relative references to the same directory by default, e.g. photo1.swf, >>photo2.swf, photo3.swf, etc. I want to forward to the html pages through >>the controller and the ActionForward functionality in order to preserve >>security and other matters. But, my html pages are not seeing the >>template pages. I can solve that by using relative references in the >>html pages, but not in the Flash template.swf pages. So, what to do? >> >>Why won't the relative references work when the default mapping is to the >>extension *.do? >> >>Micael >> >> >>>Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm >>>List-Unsubscribe: <mailto:[EMAIL PROTECTED]> >>>List-Subscribe: <mailto:[EMAIL PROTECTED]> >>>List-Help: <mailto:[EMAIL PROTECTED]> >>>List-Post: <mailto:[EMAIL PROTECTED]> >>>List-Id: "Tomcat Users List" <tomcat-user.jakarta.apache.org> >>>Reply-To: "Tomcat Users List" <[EMAIL PROTECTED]> >>>Delivered-To: mailing list [EMAIL PROTECTED] >>>Date: Wed, 3 Apr 2002 10:12:36 -0800 (PST) >>>From: "Craig R. McClanahan" <[EMAIL PROTECTED]> >>>To: Tomcat Users List <[EMAIL PROTECTED]> >>>Subject: Re: Images and STRUTS >>>X-Spam-Rating: localhost 1.6.2 0/1000/N >>>X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N >>> >>> >>> >>>On Tue, 2 Apr 2002, Micael Padraig Og mac Grene wrote: >>> >>> > Date: Tue, 02 Apr 2002 22:29:28 -0800 >>> > From: Micael Padraig Og mac Grene <[EMAIL PROTECTED]> >>> > Reply-To: Tomcat Users List <[EMAIL PROTECTED]> >>> > To: [EMAIL PROTECTED] >>> > Subject: Images and STRUTS >>> > >>> > I tried to do an ordinary image tag with the struts application, and >>> could >>> > not. What is happening with that? I could not get the index.jsp page to >>> > reference an image in the same location. I used the same page without >>> > struts, and it worked. I am just getting the clue on struts. I am >>> > familiar with the whole of Model 2 architectures, just not struts. Is it >>> > the forwarding mechanism that is calling the problem? >>> >>>You probably want to ask this sort of question on the STRUTS-USER list >>>instead of here, but here's a common scenario that can cause Struts users >>>(or anyone else using an architecture that uses RequestDispatcher.forward) >>>grief: if you are using relative path references for your images, those >>>paths get resolved against the request URI that the browser submitted to >>>-- not the URI of the page itself. This is because the browser has no >>>clue that a RequestDispatcher.forward() call was done on the server side. >>> >>>Example: >>> >>>- Your app is installed at "http://localhost:8080/myapp" >>> >>>- You have a main page "index.jsp", which therefore has the absolute URI >>> "http://localhost:8080/myapp/index.jsp". >>> >>>- You have an image in an "images" subdirectory, which therefore has the >>> absolute URI "http://localhost:8080/myapp/images/logo.gif". >>> >>>- You have Struts set up to use path based mapping to the controller >>> servlet, so you get URIs like >>> "http://localhost:8080/myapp/do/getCustomer" >>> in it (to execute the "getCustomer" action). >>> >>>Now, consider what happens if you have the following tag in index.jsp: >>> >>> <img src="images/logo.gif"> >>> >>>and you execute "http://localhost:8080/myapp/do/mainMenu". This fails to >>>retrieve the image. Why? Because the *browser* is the one that resolves >>>the absolute URI of the image -- and it resolves it against the URI that >>>it submitted for this request: >>> >>> http://localhost:8080/myapp/do/images/logo.gif >>> >>>which is obviously wrong. Ways to get around this: >>> >>>- (Struts-specific) Use extension mapping instead of path mapping >>> for the controller. Then, all requests and pages are in the same >>> "directory level" and relative references work as expected. >>> >>>- (Struts-specific) Use the <html:base/> tag in the <head> section >>> of your index.jsp page. This creates an HTML <base> tag that tells >>> the browser to base relative references on *this* page, instead of >>> the request URI of the submit. >>> >>>- (Struts-specific) Use the Struts <html:img> tag instead, which knows >>> all about this problem and generates the correct URI automatically. >>> >>>- (General) Use a relative path like "../images/logo.gif" to convince >>> the browser to do the path correctly. >>> >>>- (General) Include your own <base> tag to tell the browser what the >>> absolute URL of this page is. >>> >>> > >>> > Micael >>> > >>> >>>Craig >>> >>> >>>-- >>>To unsubscribe: <mailto:[EMAIL PROTECTED]> >>>For additional commands: <mailto:[EMAIL PROTECTED]> >>>Troubles with the list: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>