Hi.  Apologies for going slightly off topic (!), and the long title, but
with all this talk about pre-compiling JSPs, thought I'd jump in with a
question that relates to jasper no-longer recognising when a file has
changed due to the new "_jsp" which it seems to add to the end of files it
compiles.

This proves VERY frustrating when using Ant in development, as you have to
pre-compile *all* your jsp's everytime you make a change, and then restart
the server.

Surely there is a way round this.  Has anyone else see it?

Many thanks,

David





Jason Lea <[EMAIL PROTECTED]> on 03/25/2003 02:23:03 AM

Please respond to "Struts Users Mailing List"
       <[EMAIL PROTECTED]>

To:    Struts Users Mailing List <[EMAIL PROTECTED]>
cc:
Subject:    Re: Filter to redirect to welcome action when pre-compiling
       JSPs


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]









---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to