Yes. I was just wondering if it's an issue to move the location of the nocache handler since I really need access to the ActionMapping which isn't populated until a later step?
Here's what I have in struts-config.xml: <action path="/DisplayPDF" className="dep.common.struts.NoCacheActionMapping" type="view.struts.actions.DisplayPDF_Action" scope="request"> <set-property property="nocache" value="false" /> <exception type="java.lang.Exception" handler="dep.exception.ExceptionHandler" path="/PDF_Display_Error.do" key="exception.LOG" scope="request" /> </action> ... <controller nocache="true" /> Web.xml points to the updated chain-config.xml which was extracted from the struts-core jar via the chainConfig parameter. The ActionMapping was taken right out of the book. The revised command is similar to the book's code: package dep.common.struts; import org.apache.struts.action.ActionMapping; import org.apache.struts.chain.commands.AbstractRequestNoCache; import org.apache.struts.chain.contexts.ActionContext; import org.apache.struts.chain.contexts.ServletActionContext; import javax.servlet.http.HttpServletResponse; import org.apache.struts.config.ActionConfig; /** * <p>Check to see if the controller is configured to prevent caching, and if * so, set the no cache HTTP response headers.</p> */ public class ConfigurableNoCache extends AbstractRequestNoCache { // ------------------------------------------------------- Protected Methods protected void requestNoCache(ActionContext context) { boolean nocache = true; // default to nocache ActionConfig mapping = context.getActionConfig(); if (mapping != null ) { if ( mapping instanceof NoCacheActionMapping ) { NoCacheActionMapping customMapping = (NoCacheActionMapping) mapping; nocache = customMapping.isNocacheEnabled(); } } if ( nocache ) { // Standard struts code follows... ServletActionContext sacontext = (ServletActionContext) context; HttpServletResponse response = sacontext.getResponse(); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache,no-store,max-age=0"); response.setDateHeader("Expires", 1); } } // requestNoCache } -----Original Message----- From: paulus.benedic...@gmail.com [mailto:paulus.benedic...@gmail.com] On Behalf Of Paul Benedict Sent: Thursday, December 18, 2008 11:14 PM To: Struts Users Mailing List Subject: Re: S1: Nocache and SSL Sounds like an interesting idea. Are you using <set-property> within the action config to turn caching off only where you need it? On Fri, Dec 5, 2008 at 9:13 AM, Givler, Eric <egiv...@state.pa.us> wrote: > I'm using Struts 1.3.5. > > I've run into a snag lately that my struts-config.xml controller > nocache setting is causing IE to not download/display a PDF from one > of my actions (see http://support.microsoft.com/?kbid=323308). I > thought I could selectively turn off the nocache attribute for the > single action that displays the PDF (like recipe 3.18 in Struts > Cookbook where they read an ActionMapping which sets a flag). The > issue is that the recipe is for earlier versions of Struts without the > ComposableRequestProcessor. > > I modified my code to create a command ConfigurableNoCache to replace > org.apache.struts.chain.commands.servlet.RequestNoCache. However, I > needed to read the ActionMapping which contains the setting for this > action (disabling the cache) and the nocache command appears prior to > the lookup of the action config so the context.getActionConfig() > returns null. If I want to put this in place, is there any issue > modifying the chain-config like this (moving the nocache command): > > <!-- Set (if needed) no cache HTTP response headers --> > <!-- <command > className="org.apache.struts.chain.commands.servlet.RequestNoCache"/> > --> > > > <!-- Set (if needed) the HTTP response content type --> > <command > > className="org.apache.struts.chain.commands.servlet.SetContentType"/> > > > <!-- Identify the ActionConfig for this request --> > <command > > className="org.apache.struts.chain.commands.servlet.SelectAction"/> > > <!-- Need to check no-cache AFTER we have access to the ActionConfig! --> > <command className="dep.common.struts.ConfigurableNoCache" /> > > > Thanks for any input/assistance on this matter. I really appreciate > it! > > Eric Givler > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org