gaffer wrote:
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]



Reply via email to