Hi Jason,
At this very moment, I am trying to solve a similar issue. Would you mind posting the relevant snippets from web.xml and struts-config? Such as paths to actions, url-pattern, etc.
Thanks Al
Ok, here goes...
web.xml: <web-app> ... <!-- Filter: redirect to Struts forwardName--> <filter> <filter-name>WelcomeFilter</filter-name> <filter-class>nz.net.kumachan.project.WelcomeFilter</filter-class> <init-param> <param-name>forwardName</param-name> <param-value>homepage</param-value> </init-param> </filter> ... <filter-mapping> <filter-name>WelcomeFilter</filter-name> <url-pattern>/</url-pattern> </filter-mapping> ... <!-- Standard Action Servlet --> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet>
<!-- Standard Action Servlet Mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> ... </web-app>
Note:
I don't have a <welcome-file-list> defined in web.xml.
My WelcomeFilter takes a Struts Global Forward, looks up the forward (in this case it would return "/Homepage.do"). I could have just put "/Homepage.do" as the forwardName and use req.getRequestDispatcher(forwardName).forward(req,res) instead of messing with the Struts code. Hmm, maybe that would be nicer... I might change it now :)
struts-config.xml: <struts-config> ... <global-forwards> ... <forward name="homepage" path="/Homepage.do"/> ... <global-forwards> ... <action-mappings> ... <action path="/Homepage" type="org.apache.struts.actions.ForwardAction" parameter="main.homepage"/> ... </action-mappings> ... </struts-config>
Note:
The action "/Homepage" forwards to the parameter "main.homepage" which maps to a Tiles definition eg in tiles-defs.xml:
<definition name="main.homepage" extends=".mainLayout">
but I could have used something like "WEB-INF/jsp/pages/Homepage.jsp" for the parameter
Hope this helps...
Jason Lea
On Mon, 2003-03-24 at 22:01, Jason Lea wrote:
Cool. It's good to know someone else has done this. I thought I should post this just so someone else looking at pre-compilation of JSPs would find it useful, but also to see if there are any glaring issues or if it is a Good Thing (TM) :-)
Jason
David Graham wrote:
This is exactly what I did :-).
David
From: Jason Lea <[EMAIL PROTECTED]> Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> To: Struts Users Mailing List <[EMAIL PROTECTED]> Subject: Filter to redirect to welcome action when pre-compiling JSPs Date: Tue, 25 Mar 2003 17:47:14 +1200
I have been playing around with JSP pre-compilation with Tomcat-4.1.24 (http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jasper-howto.html) so I can check my JSP pages for compiler errors before deployment, but also to remove the delay that the first hit incurs.
The only problem with this is the <welcome-file> which has to point to a physical jsp page and not a servlet. The Struts in Action book suggests using a index.jsp page with a <logic:redirect> to a Welcome action, which is what I was doing.
I tried creating a servlet that would forward the request onto my Welcome action & servlet-mapping with a <url-pattern>/<url-pattern>, but this seemed to match any request and cause lots of problems.
So I dropped that idea and instead have used a filter...
<filter-mapping> <filter-name>WelcomeFilter</filter-name> <url-pattern>/</url-pattern> </filter-mapping>
which works perfectly. It only fires for http://localhost/app/ or http://localhost/app and my filter forwards the request onto my Welcome action correctly.
I can now get rid of index.jsp and all my other JSPs are pre-compiled. I have also hidden all of my JSPs under the WEB-INF so they cannot be called directly and have to go through my Struts actions.
Jason Lea
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Jason Lea Email: [EMAIL PROTECTED] Phone/Fax: +64 3 381 2907 Mobile: +64 21 040 2708 Address: 9a Tabart Street, Christchurch, New Zealand
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]